当年给学生讲Python多线程时候自己的总结:线程的函数式和继承式两种实现
Python 多线程
(一)
使用线程的两种方式:
1.函数式:调用thread模块中的start_new_thread()函数来产生新线程
thread.start_new_theard(function,args[,kwargs])
或者threading.Thread(target=func,args=(1,))
(点到面到体系:我想,这个thread内部应该是类似继承自type类的,这样才可以创建类,然后生成线程。)
2.继承式:MyThread(threading.Thread)
调用父类的构造方法|重写run方法|执行start方法启动线程:(必定有run=target这样的方式,或者run方法内部有这样的方式,从而调用target方法)
python的线程模块:
(二)
需要了解两个标准库:1.thread 2.threading提供线程支持。
1.thread 提供低级别,原始的线程以及一个简单的锁
2.threading模块提供对线程的操作。
(三)
线程相关的join()和setDaemon(True)方法
1)线程的join方法,是让线程加入主干,主线程阻塞,直到本线程执行完后,主线程再执行。
2)setDaemon(True)--keyword:线程守护模式。如果在线程调用start方法之前调用的主这个方法时|如果主线程在子线程之前执行完毕的话,就算子线程没有执行完,只要主线程退出,那么子线程也立即退出。
如果没有设置守护模式,那么主进程会一直等待所有子线程执行完后主线程才退出。
【好多年不用Python系列】