通用元件‎ > ‎

閘門

這個閘門元件(class Gate)是在多執行緒環境下,多對一的控制元件。即有一個執行緒利用這個元件進入等待狀態,而其他的執行緒可送一個信號給這元件,讓那個進入等待狀態的執行緒脫離等待繼續執行。

具體的效應歸納如下:

Gate 剛建立的實例處於關閉狀態,即叫用 Gate::Wait() 會進入等待狀態。

當叫用 Gate::Wait() 時:

  • 若 Gate 處於關閉狀態,會進入等待直到其他執行緒送來訊號,閘門才會打開繼續執行,並且立刻把門關上
  • 若 Gate 已處於開啟狀態,不會進入等待繼續執行,並且立刻把門關上
  • 進入等待其實是在睡眠狀態,不會消耗 CPU 資源
其他執行緒使用 Gate::Signal() 送入訊號,不管 Gate 有沒有進入等待,都會把閘門打開
 

引入檔

GATE.HPP 

程式庫

cxxlcommon

 
Comments