C#信號量(Semaphore,SemaphoreSlim)


Object-> MarshalByRefObject-> WaitHandle-> Semaphore

1.作用:

多線程環境下,可以控制線程的並發數量來限制對資源的訪問

2.舉例:

Semaphore可以決定並發的數量,WaitOne會等待當前的一條並發完成,才允許另一條並發的開啟,Release會釋放並發,並可以指定並發數量

3.常用方法:

(1) 初始化 System.Threading.Semaphore 類的新實例,並指定初始入口數和最大並發入口數。

public Semaphore(int initialCount, int maximumCount);

(2) 阻止當前線程,直到當前 System.Threading.WaitHandle 收到信號。

public virtual bool WaitOne();

(3)退出信號量並返回前一個計數。

public int Release();

 

參考:

https://docs.microsoft.com/en-us/dotnet/api/system.threading.semaphore?view=netframework-4.7.2

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM