在.Net framework中是否有使用spinlock或spinwait的示例?
我看了一下并发的集合,但它们似乎在引擎盖下使用了正常的锁定。在.Net framework中有没有使用这种锁定结构的好例子在.Net framework中是否有使用spinlock或spinwait的示例?,.net,multithreading,spinlock,spinwait,.net,Multithreading,Spinlock,Spinwait,我看了一下并发的集合,但它们似乎在引擎盖下使用了正常的锁定。在.Net framework中有没有使用这种锁定结构的好例子 我最初看的是ConcurrentDictionary。我看到它使用普通锁,但是BlockingCollection类在其内部方法中使用SpinWait。你说的普通锁是什么意思?某种锁(对象){…}构造 如果是,您应该查看ConcurrentStack,例如,它使用SpinWait作为其作业。几乎所有低锁并发收集类都可能使用SpinWait和Yield的组合。然而,conc
我最初看的是ConcurrentDictionary。我看到它使用普通锁,但是BlockingCollection类在其内部方法中使用SpinWait。你说的普通锁是什么意思?某种
锁(对象){…}
构造
如果是,您应该查看
ConcurrentStack
,例如,它使用SpinWait
作为其作业。几乎所有低锁并发收集类都可能使用SpinWait
和Yield
的组合。然而,concurrentdirectionary
是一个显著的例外。我找到的类列表包括以下内容
- 手动重置事件苗条
- 信号量lim
- 自旋锁
- 屏障
- ReaderWriterLockSlim
- 并发队列
- 并发堆栈
- 封锁收集
你为什么要这样做?自旋锁是一种繁忙的等待机制,即使用资源而不做任何有用的事情。我想我永远都不需要这样做。但我只是想了解更多,看看一个不错的例子。大多数例子充其量都是虚构的。在我看来,你似乎找不到现实生活中的例子已经说明了很多。@Daniel:没错:)。但他们把它包括在内是有原因的。我只是想了解更多。