python關於執行緒的一點介紹
Python中使用執行緒有兩種方式:函式或者用類來包裝執行緒物件。
函式式:呼叫 _thread 模組中的start_new_thread()函式來產生新執行緒。語法如下:
_thread.start_new_thread ( function, args[, kwargs] )
引數說明:
function - 執行緒函式。
args - 傳遞給執行緒函式的引數,他必須是個tuple型別。
kwargs - 可選引數。
執行緒模組
_thread 提供了低階別的、原始的執行緒以及一個簡單的鎖,它相比於 threading 模組的功能還是比較有限的。
threading 模組除了包含 _thread 模組中的所有方法外,還提供的其他方法:
threading.currentThread(): 返回當前的執行緒變數。
threading.enumerate(): 返回一個包含正在執行的執行緒的list。正在執行指執行緒啟動後、結束前,不包括啟動前和終止後的執行緒。
threading.activeCount(): 返回正在執行的執行緒數量,與len(threading.enumerate())有相同的結果。
除了使用方法外,執行緒模組同樣提供了Thread類來處理執行緒,Thread類提供了以下方法:
run(): 用以表示執行緒活動的方法。
start():啟動執行緒活動。
join([time]): 等待至執行緒中止。這阻塞呼叫執行緒直至執行緒的join() 方法被呼叫中止-正常退出或者丟擲未處理的異常-或者是可選的超時發生。(等待所有子執行緒執行結束,主執行緒才結束)
isAlive(): 返回執行緒是否活動的。
getName(): 返回執行緒名。
setName(): 設定執行緒名。
使用 threading 模組建立執行緒
我們可以透過直接從 threading.Thread 繼承建立一個新的子類,並例項化後呼叫 start() 方法啟動新執行緒,即它呼叫了執行緒的 run() 方法:
呼叫類的內部方法:self.
無錫人流醫院哪家好
執行緒同步
如果多個執行緒共同對某個資料修改,則可能出現不可預料的結果,為了保證資料的正確性,需要對多個執行緒進行同步。
使用 Thread 物件的 Lock 和 Rlock 可以實現簡單的執行緒同步,這兩個物件都有 acquire 方法和 release 方法,對於那些需要每次只允許一個執行緒操作的資料,可以將其操作放到 acquire 和 release 方法之間。如下:
多執行緒的優勢在於可以同時執行多個任務(至少感覺起來是這樣)。但是當執行緒需要共享資料時,可能存在資料不同步的問題。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69945560/viewspace-2655409/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 執行緒池介紹執行緒
- 關於Java併發多執行緒的一點思考Java執行緒
- 多執行緒系列(十七) -執行緒組介紹執行緒
- iOS 多執行緒介紹iOS執行緒
- Nexus.js介紹:一個多執行緒的JavaScript執行庫JS執行緒JavaScript
- Android執行緒池使用介紹Android執行緒
- 執行緒本地ThreadLocal的介紹與使用!執行緒thread
- 基於 FFI 的 PyFlink 下一代 Python 執行時介紹Python
- Java 關於執行緒的一些使用Java執行緒
- python多執行緒中:如何關閉執行緒?Python執行緒
- 執行緒介紹及建立方式執行緒
- Java多執行緒傻瓜入門介紹Java執行緒
- 關於redis單執行緒的分析Redis執行緒
- 關於執行緒設計的感受執行緒
- Python 關於JSON模組介紹PythonJSON
- python 程式、執行緒 (一)Python執行緒
- 【多執行緒系列】CAS、AQS簡單介紹執行緒AQS
- Java併發 之 執行緒組 ThreadGroup 介紹Java執行緒thread
- 關於執行緒的幾個函式執行緒函式
- 關於執行緒池的面試題執行緒面試題
- 詳細介紹執行緒的基本概念、屬性執行緒
- 關於程式和執行緒 自我的一些總結執行緒
- 關於程式與執行緒的一個簡單解釋執行緒
- python多執行緒的優缺點總結Python執行緒
- java基礎 關於執行緒安全Java執行緒
- 執行緒簡介執行緒
- MySQL多執行緒同步MySQL-Transfer介紹TZMySql執行緒
- 達夢資料庫執行緒簡單介紹資料庫執行緒
- java 多執行緒(關於Thread的講解)Java執行緒thread
- 關於js執行緒問題的解讀JS執行緒
- 冷門前端知識,介紹雙執行緒的小程式!前端執行緒
- 關於Numba的執行緒實現的說明執行緒
- [譯] 多執行緒簡介:一步一步來接近多執行緒的世界執行緒
- Python的執行緒池Python執行緒
- 什麼是Python執行緒?Python執行緒如何建立?Python執行緒
- 多執行緒程式設計介紹-條件變數執行緒程式設計變數
- 關於Java多執行緒的執行緒同步和執行緒通訊的一些小問題(順便分享幾篇高質量的博文)Java執行緒
- python之執行緒相關操作(補充)Python執行緒