threading模块基本用法
Python多线程编程(一):threading 模块 Thread 类的用法详解
Python 多线程编程(二): threading 模块中 Lock 类的用法详解
threading.Thread.join函数解释
threading.Thread.join(timeout=None)调用该函数的线程会阻塞调用该线程的主线程和其它线程,直到该线程结束结束为止,或者达到timeout时间为止。
threading.Thread.daemon函数解释
该属性是一个boolean值,决定该线程是否是一个保护线程(后台线程)。它的意思是该线程是为了服务调用该线程的主线程的,即当主线程结束后,不论该线程是否运行完毕,都会立刻结束。
threading.Lock类解释
注意的是,threading.Lock表示的线程锁概念,是一个独立的存在,它不被任何一个线程所拥有。所以其实是各个线程来acquire(抢占),等抢到的那个线程release后其他线程才能继续抢占。
并且threading.Lock类支持context management protocol,即可以使用with语句,可以想见它的__enter__函数中实现了acquire,在它的__exit__函数中实现了release。
threading.local类解释
该类提供一个TLS(Thread Local Storage)机制,具体来说我们定义一个全局变量var=threading.local(),对于var我们可以任意赋予其属性来存储数据。而当各个线程使用这个全局变量var时,都会自动生成一个自己的版本,不会相互影响(本身定义在全局的var属于主线程)。该类的意义不是在于提供一个全局变量让各个线程可以进行修改,从而完成某种逻辑(买票窗口案例),这是线程锁需要处理的事情。该类其实是提供了一个安全的全局变量,让各线程不用在编写调用时传递很多参数,是一种编程范式上的优化,具体见:深入理解Python的TLS机制和Threading.local()
threading模块中的常用函数
threading.current_thread()返回当前所属的线程类。
threading.main_thread()返回主线程类。
threading.active_count()返回当前仍在执行的线程数量。
threading.enumerate()返回当前所有仍在执行的线程所组成的一个列表。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。