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.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()返回以后所有仍在执行的线程所组成的一个列表。