在C#中,Semaphore是一种用于控制同时访问资源的同步机制。Semaphore允许指定多个线程同时访问临界区域,而不是像Mutex那样只允许一个线程访问。
Semaphore的使用方法如下:
Semaphore semaphore = new Semaphore(initialCount, maximumCount);
semaphore.WaitOne();
// 访问共享资源的代码
// 完成访问共享资源的代码
semaphore.Release();
semaphore.Dispose();
通过使用Semaphore,可以有效地控制并发访问共享资源的线程数量,避免竞争条件和死锁的发生。