作業系統設計/臨界區問題/監視器
外觀
|
|
監視器是條件變數和鎖的組合。它使用條件變數上的忙等待來確保執行緒之間的同步,並在接收到來自另一個執行緒的訊號後執行。它可以向一個執行緒傳送訊號,或者廣播所有正在等待鎖釋放的執行緒。監視器是一個物件,可以被多個執行緒安全地使用。也就是說,它的方法總是在互斥狀態下執行:在任何給定的時間點,只有一個執行緒可以執行給定的方法。它們通常提供方法來等待訪問變得可用並向執行緒發出訊號以表明它們可以控制。
許多高階語言(C#、Python、Java 等)包含內建的監視器功能。對於不支援監視器的語言,如 C,存在提供此類功能的併發庫,例如 Pthreads。