Semaphore
Semaphore 信號量
一個Semaphore維護了一組許可,許可數量通過構造方法指定。
每一個 acquire方法都將會阻塞直到有一個可用的許可。
每一個 release方法釋放所持有的許可,並通知正在阻塞等待獲取許可的線程。
Semaphore經常用於限製訪問某個資源的線程數量。
當一個Semaphore被初始化為1個許可時,可以用作互斥鎖,或者叫binary semaphore,這種鎖可以被一個線程釋放而不是鎖的擁有者,在某些情況下這個特性將會很有用,比如從死鎖中恢複。
構造方法中有一個參數fairness用來指定是公平鎖還是非公平鎖,當設置為false時,非公平鎖策略將會發揮作用,等待獲取鎖的隊列裏麵的請求者,都有平等的機會獲取鎖;當設置為true時,公平鎖策略將會發揮作用,等待獲取鎖的隊列裏麵的請求者中將按FIFO的原則先進入隊列的請求者將獲取鎖。
最後更新:2017-06-13 16:01:34