2009-04-22 212 views
1

什麼是實際差異概念和實現之間的觀點線程/同步

Semophore,Mutex,Monitor?

我們說Semophores是資源分配櫃檯......好吧,我明白這一點..

互斥量,我們說的是互斥二進制Semophore ......天哪是什麼???

監視器保護對象的入口點......即只有一個線程可以獲取它並且可以運行它的一個守護入口點???那麼什麼是互斥?

+0

dupe:http://stackoverflow.com/questions/760168/when-should-each-thread-synchronization-objects-be-used – finnw 2009-08-03 10:17:15

回答

1

信號燈是一種鎖定機制,iirc可以在概念上配置爲允許多個aceess對象;例如一次訪問三個,一次四個,等等。

互斥量是確保互斥的信號量的特例,也就是說,只有一個人可以在任何時候訪問受保護的資源。

請務必注意,信號量和互斥量在等待訪問共享資源時都不會確保嚴格排序。當資源變得可訪問時,一些等待線程將獲得訪問權限,但沒有關於哪個線程將被訪問。統計上,最終所有線程都將(必須)獲得訪問權限。

監視器通過按特定順序對它們進行排隊,而不一定如何到達,從而強制等待線程/進程的優先級。操作系統是監視器的一個例子 - 確保單個進程在任何給定時間都具有CPU。

+0

好的解釋只是一件事。信號量確實擁有一個數據結構可能是一個Queue,它本身可以在線程無法分配資源時等待線程。這不是一種排序嗎? 如果您可以詳細說明Mutex和差異黑白監視器和互斥鎖的工作情況。 – 2009-04-22 12:31:41