python中threading模块详解及常用方法_Python常用模块功能简介(二)threading
threading模塊基本用法
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()返回當前所有仍在執行的線程所組成的一個列表。
總結
以上是生活随笔為你收集整理的python中threading模块详解及常用方法_Python常用模块功能简介(二)threading的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Kevin专栏---如何制作试用版安装包
- 下一篇: Sandy引擎学习笔记:摄影机