开启线程的两种方式
2021/5/20 18:26:57
本文主要是介绍开启线程的两种方式,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
#线程开启一 from threading import Thread import time def sayhi(name): time.sleep(2) print('%s say hello'%name) if __name__ == '__main__': t = Thread(target=sayhi,args=('egon',)) t.start() #刚刚开启就调用,因为还睡了两秒,所以先执行主线程 print('主线程')
#开启线程方式二 from threading import Thread import time class Sayhi(Thread): def __init__(self,name): super().__init__() self.name = name def run(self): #名字必须为run time.sleep(2) print('%s say hello'%self.name) if __name__ == '__main__': t = Sayhi('egon') t.start() #start开始会运行run函数 print('主线程')
在一个进程字儿开启多个线程与开启多个进程的区别
from threading import Thread #线程模块 from multiprocessing import Process #进程模块 import os def work(): print('hello') if __name__ == '__main__': # t = Thread(target=work) #开启线程速度较快 t = Process(target=work) #重新申请内存空间,速度慢 t.start() print('主线程:%s'%os.getpid())
线程与进程的区别
线程中所有的数据共享
守护线程与守护进程的异同:
主线程会等到所有非守护线程结束,才销毁守护线程
主进程的代码运行完毕,就会销毁守护进程,然后等非守护进程运行完毕,主进程结束。
1 from threading import Thread 2 import time 3 def foo(): 4 print(123) 5 time.sleep(2) 6 print('end123') 7 def bar(): 8 print(456) 9 time.sleep(1) 10 print('end456') 11 if __name__ == '__main__': 12 t1 = Thread(target=foo) 13 t2 = Thread(target=bar) 14 t1.daemon = True 15 t1.start() 16 t2.start() 17 print('this is father')守护进程与守护线程
这篇关于开启线程的两种方式的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-04百万架构师第六课:设计模式:策略模式及模板模式
- 2025-01-04百万架构师第七课:设计模式:装饰器模式及观察者模式
- 2025-01-04适用于企业管理的协作工具API推荐
- 2025-01-04挑战16:被限流的CPU
- 2025-01-03企业在选择工具时,如何评估其背后的技术团队
- 2025-01-03Angular中打造动态多彩标签组件的方法
- 2025-01-03Flask过时了吗?FastAPI才是未来?
- 2025-01-0311个每位开发者都应知道的免费实用网站
- 2025-01-03从REST到GraphQL:为什么以及我是如何完成转型的
- 2025-01-03掌握RAG:从单次问答到连续对话