【跟我學Python】第四章. Python多執行緒程式設計

Front發表於2013-12-10

 

 

 

 

                                        【跟我學Python】第四章. Python多執行緒程式設計

 

 

在Python中我們主要是通過thread和 threading這兩個模組來實現的,其中Python的threading模組是對thread做了一些包裝的,可以更加方便的被使用,所以我們使用 threading模組實現多執行緒程式設計。

 

Thread 執行緒類,用的最多的一個類,可以指定執行緒函式執行或者繼承自它都可以實現子執行緒功能;

Timer與Thread類似,但要等待一段時間後才開始執行;

Lock 鎖原語,這個我們可以對全域性變數互斥時使用;

RLock 可重入鎖,使單執行緒可以再次獲得已經獲得的鎖;

Condition 條件變數,能讓一個執行緒停下來,等待其他執行緒滿足某個“條件”;

Event 通用的條件變數。多個執行緒可以等待某個事件發生,在事件發生後,所有的執行緒都被啟用;

Semaphore為等待鎖的執行緒提供一個類似“等候室”的結構;

BoundedSemaphore 與semaphore類似,但不允許超過初始值;

Queue:實現了多生產者(Producer)、多消費者(Consumer)的佇列,支援鎖原語,能夠在多個執行緒之間提供很好的同步支援。

setDaemon(self, daemonic) 把執行緒的daemon標誌設為daemonic

 

Thread類:主要的執行緒類,可以建立程式例項。

        getName(self) 返回執行緒的名字

        isAlive(self) 布林標誌,表示這個執行緒是否還在執行中

        isDaemon(self) 返回執行緒的daemon標誌

        join(self, timeout=None) 程式掛起,直到執行緒結束,如果給出timeout,則最多阻塞timeout秒

        run(self) 定義執行緒的功能函式

        setName(self, name) 設定執行緒的名字

        start(self) 開始執行緒執行

 

Queue類

        Queue佇列

        LifoQueue後入先出(LIFO)佇列

        PriorityQueue 優先佇列

 

接下來,我們用一個一個示例來展示threading的各個功能,包括但不限於兩種方式起執行緒、threading.Thread類的重要函式、使用Lock互斥及RLock實現重入鎖、使用Condition實現生產者和消費者模型、使用Event和Semaphore多執行緒通訊。

 

 

 

相關文章