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

 

转载于:https://www.cnblogs.com/yaosj/p/11143656.html

你可能感兴趣的:(C#信号量(Semaphore,SemaphoreSlim))