共计 912 个字符,预计需要花费 3 分钟才能阅读完成。
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() 返回以后所有仍在执行的线程所组成的一个列表。