.Net框架中是否有使用spinlock或spinwait的示例?

uri*_*ium 9 .net multithreading spinlock spinwait

我查看了并发集合,但它们似乎在引擎盖下使用了正常锁定..Net框架中是否有任何使用此锁定构造的好例子?


我最初看过ConcurrentDictionary.我看到它使用普通锁,但BlockingCollection类在其内部方法中使用SpinWait.

Bri*_*eon 5

几乎所有的低锁定并发集合类的可能会使用一些组合SpinWaitYield。虽然ConcurrentDictionary是一个值得注意的例外。我找到的课程列表包括以下内容。

  • ManualResetEventSlim
  • 信号量Slim
  • 自旋锁
  • 障碍
  • ReaderWriterLockSlim
  • 并发队列
  • 并发堆栈
  • 阻塞集合


use*_*016 4

正常锁定是什么意思?某种lock(object) { ... }构造?

如果是,您应该查看ConcurrentStack例如,它使用 aSpinWait来完成其工作。