監視器_(程序同步化)

監視器 ( ， 也稱爲 - { zh - cn: 監視器; zh - tw: 管程; } - ) 是一種程序結構 ， 結構內的多個子程序 （ 對象或模塊 ） 形成的多個工作線程互斥訪問共享資源 。 這些共享資源一般是硬件或一群變數 。 管程實現了在一個時間點 ， 最多隻有一個線程在執行管程的某個子程序 。 與那些通過修改數據結構實現互斥訪問的併發程序設計相比 ， 管程實現很大程度上簡化了程序設計 。 管程提供了一種機制 ， 線程可以臨時放棄互斥訪問 ， 等待某些條件得到滿足後 ， 重新獲得執行權恢復它的互斥訪問 。 管程是東尼 · 霍爾 與泊 · 派克 · 漢森 提出的 ， 並由泊 · 派克 · 漢森首次在並行Pascal中實現 。 東尼 · 霍爾證明了這與信號量是等價的 。 管程在當時也被用於單作業系統環境中的進程間通訊 。 在程式語言 ， Pascal - Plus ， Modula - 2 ， Modula - 3 ， Mesa以及Java中都提供這個功能 。