多執行緒程式設計 任務取消,中斷

2021-06-21 23:04:38 字數 908 閱讀 1420

執行緒中斷是乙個協作機制,乙個執行緒給另外乙個執行緒傳送訊號(signal),通知它在方便和可能的情況下,停止正在做的事情,去做其他事情。

使用中斷來處理取消之外的任何任務都是不可取的。

thread 包含乙個靜態巢狀類,thread.state

阻塞庫函式:

監測執行緒何時被中斷,並提前返回。

如果監測到中斷,具體表現為: 

當執行緒不處於阻塞狀態情況下,發生中斷,會設定執行緒的中斷狀態,等待被取消的活動

如果任務**響應中斷,那麼可以使用中斷作為取消機制,並利用很多庫類對中斷的支援。中斷通常是實現取消最明智的選擇。

中斷策略:

決定執行緒如何應對中斷請求。

中斷策略最有意義的是對執行緒級和服務級取消的規定。

區分任務和執行緒對中斷的反應。

**如果不是執行緒的所有者,就應該小心地儲存中斷狀態,這樣所有者的**才能夠最終對其起到作用。

執行緒應該只能夠被執行緒所有者中斷,所有者把執行緒的中斷策略封裝到乙個合適的取消機制中,比如關閉方法。

每個執行緒都有自己的中斷策略,所以不應該中斷執行緒,除非你知道中斷對執行緒意味著什麼。

響應中斷:

傳遞異常,使你的方法成為可中斷的阻塞方法。

儲存中斷狀態,使上層呼叫棧中的**能夠進行處理。

只有實現了執行緒中斷策略的**才可以響應中斷其請求,通用目的的任務和庫的**決不應該接收中斷請求。

處理不可中斷阻塞:

使用與中斷類似的手段,確保可以停止這些執行緒。需要清楚知道執行緒為什麼會被阻塞。

多執行緒程式設計之執行緒取消

關鍵 pthread cancel函式傳送 終止訊號 pthread setcancelstate函式 設定終止方式 pthread testcancel函式取消執行緒 另一功能是 設定取消點 1 執行緒取消的定義 一般情況下,執行緒在其主體函式退出的時候會自動終止,但同時也可以因為接收到另乙個執行...

多執行緒 執行緒中斷

設計思路 1,新建乙個執行緒,其啟動引數是要輸出其執行狀態。2,中斷主線程若干秒,讓新建執行緒持續運作。3,中斷新建執行緒,輸出起執行次數和執行狀態。int count 0 thread t2 new thread catch threadabortexception absortexception...

LINUX多執行緒程式設計之建立,等待,取消執行緒

h7n9禽流感來啦,多人死亡,又感覺到了03年我在北京時的非典氣氛。家裡菜桌上肉明顯沒了。睡一覺起來,肚子裡再沒有肉貨,清明節學習的計畫不能停止!現在進入多執行緒學習啦。由於linux程序間的通訊占用資源蠻大的,所以設定了執行緒函式,只複製棧,其它同享。當然,執行緒之間,也存在著同步機制啦 互斥鎖,...