C# 什么时候使用maxCount为1的信号量才有意义?

C# 什么时候使用maxCount为1的信号量才有意义?,c#,multithreading,semaphore,C#,Multithreading,Semaphore,据我所知,信号量被设计成允许多个线程同时访问一个资源池。我还了解到互斥锁一次只允许单个线程访问资源。我目前正在使用一些代码,这些代码使用信号量LIM来确保只有一个线程可以访问资源 创建一个只有一个线程可以同时访问资源池的信号量有意义吗?在这种情况下,为什么不使用互斥锁呢?或者从我读到的C语言中类似的结构——锁或监视器?听起来互斥锁/锁/监视器更简单,而且不太容易产生误导。如果单线程被授予对资源的独占访问权,我看不出为什么不使用互斥锁或任何其他类型的互斥锁 听起来互斥锁/锁/监视器更简单,也更少

据我所知,信号量被设计成允许多个线程同时访问一个资源池。我还了解到互斥锁一次只允许单个线程访问资源。我目前正在使用一些代码,这些代码使用信号量LIM来确保只有一个线程可以访问资源


创建一个只有一个线程可以同时访问资源池的信号量有意义吗?在这种情况下,为什么不使用互斥锁呢?或者从我读到的C语言中类似的结构——锁或监视器?听起来互斥锁/锁/监视器更简单,而且不太容易产生误导。

如果单线程被授予对资源的独占访问权,我看不出为什么不使用互斥锁或任何其他类型的互斥锁

听起来互斥锁/锁/监视器更简单,也更少 潜在的误导


在这种情况下,这是无可争辩的

SemaphoreSlim比Mutex快,大多数情况下你都想使用Monitor,但它有一个限制,我现在记不起来了,在另一个线程中留下了一些东西。信号量LIM没有它。@Sinatr不是监视器只是锁定吗?@FCin,使用监视器锁定。@Sinatr这就是我要说的。锁是监视器的语法糖。监视器锁比互斥锁快50倍。一个不使用互斥锁的好理由。