进程:资源的容器,会启动一个解释器进程,里面跑你的程序,多线程共享同一个解释器进程
线程:干活的
python的线程开发
使用标准库threading
我们来敲一个小demo来测试一下什么是多线程编程
import threading import time def worker(): count = 0 while True: print("I am working") count +=1 if count>10: break t = threading.Thread(target=worker) # 创建新的线程 t.start() print("====fin====") 12345678910111213'
返回结果
我们来对比一下以下代码
import threading import time def worker(): count = 0 while True: print("I am working") count +=1 if count>10: break t = threading.Thread(target=worker) # 创建新的线程 if __name__ == "__main__": print( "====fin====" ) t.start()
12345678910111213141516'返回结果
通过=fin=打印的位置,可以得到,当主线程打印完成后开启一个新的线程执行打印语句,主线程等待新的线程打印完成后,主线程消亡.
python的线程没有优先级,没有线程组概念,也不能被销毁、停止、挂起,那也没有回复终断了.
所以python的线程方法你就记start()方法就可以了,其他的基本上就是没了.
代码示例
import threading import time def add(x,y): print(x+y) return x+y t = threading.Thread(target=add,args=(4,5)) # 创建新的线程 t1 = threading.Thread(target=add,args=(4,),kwargs={"y":7}) t2 = threading.Thread(target=add,kwargs={"x":4,"y":6}) if __name__ == "__main__": print( "====fin====" ) # 每一次调用都互不干扰,因为每一个线程都有自己独立的栈 t.start() t1.start() t2.start()
12345678910111213141516'线程传参和函数传参没什么区别,本质上就是函数传参.
import threading import time def add(x,y): print(x+y) getthreadinfo() return x+y def getthreadinfo(): print(threading.current_thread()) # 当前线程 print(threading.main_thread()) # 主线程 print(threading.active_count()) # 处于存活线程个数 print(threading.enumerate()) # 枚举存活线程生成列表 print(threading.get_ident()) # 获取当前线程ID t = threading.Thread(target=add,args=(4,5)) # 创建新的线程 t1 = threading.Thread(target=add,args=(4,),kwargs={"y":7}) t2 = threading.Thread(target=add,kwargs={"x":4,"y":6}) if __name__ == "__main__": getthreadinfo()
12345678910111213141516171819'运行返回
最后讲一下start()方法和run()方法的区别
start()方法是在启动一个新的线程后,在新的线程上调用run()方法.而run()就是一个在主线程上运行的普通的函数调用.所以我们只需要记住一个start()方法就行了,而run()方法基本上是使用不上了.
相关知识
Python中的线程池和进程池的详解
Android线程的创建与销毁
Linux 下C语言多线程编程
点的侧面投影到OZ轴的距离与点的水平投影到OX距离都等于空间点到
网上鲜花订购系统(鲜花管理、用户留言版)
绿植租赁终止合同
植物租赁合同终止协议
花卉租赁合同终止通知
花卉租赁合同终止通知函
基于TensorFlow的手写体识别(十种标签识别,五种作者识别)
网址: 线程的启动和终止 https://m.huajiangbk.com/newsview1012173.html
上一篇: [转载]竿子:索罗=唆啦=索伦= |
下一篇: Adams View Error |