2011-07-02 64 views
1

相反的東西有沒有Semaphore相反的東西?我在尋找的東西全系統的過程中,獨立的多線程的方式使用資源,並沒有那麼多限制線程是如何使用的資源,我可以用它來計數。 或者我應該考慮使用一個相當高的最大數量的信號量?是否有信號燈

回答

2

信號量可被釋放或以任何順序取得。我建議你在線程開始使用資源時簡單地釋放信號量,並在完成資源時獲取它。

這是假設你需要跨進程通信。如果你不這樣做,一定要用計數器變量。

我可以問你爲什麼這樣做?

+0

在http://xxm.sf.net項目中,加載xxm庫的IIS處理程序無法完全卸載庫,以便在多個w3wp.exe加載/鎖定xxl時自動更新它。所以我需要某種IPC,以便不要求1個工作進程的限制。 –

+0

在這種情況下,我所描述的一個信號量就可以工作。在更新程序中,嘗試獲取信號量。如果您無法阻止,則可以更新文件。請注意,您可能需要一個互斥鎖來防止在更新期間加載庫。 –

+0

我真正想要的是通過某種同步呼叫,對圖書館「失速」進行新的調用。如果你這樣說,我不能在該信號量上使用WaitForSingleObject。你對這個互斥體是對的,但我也可能需要一兩個事件。 –