C# 之 Semaphore 锁

C# 之 Semaphore 锁

允许线程执行信号的池子,池子中放入多少个信号就允许多少线程同时执行。

private static Semaphore sema = new(2, 2);
sema.WaitOne();
......
sema.Release();

本例中模拟执行耗时 1 秒的任务,然后返回系统时间,模拟并发执行 {{n}} 次,Semaphore 开放 2 个信号。

结果:
  • {{r}}