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

时间:2018-01-29 15:49:49

标签: c# multithreading semaphore

从我正在阅读的内容看,信号量旨在允许多个线程同时访问资源池。我还读到,互斥锁只允许单个线程一次访问资源。我目前正在使用一些使用SemaphoreSlim的代码来确保只有一个线程可以访问资源。

创建信号量是否有意义,只有一个线程可以同时访问资源池?在这种情况下,为什么不使用Mutex?或者(从我正在阅读的内容)C#中的类似结构 - lockMonitor?听起来像互斥锁/锁定/监视器更简单,并且潜在误导性更小。

1 个答案:

答案 0 :(得分:1)

如果单线程被授予对资源的独占访问权限,我就不会看到为什么不使用Mutex或任何其他类型的独占锁定的原因。

  

听起来像互斥锁/锁定/监视器更简单,更少   潜在地误导。

在这种情况下,

不能与此争论。