SpinLock

SpinLock 结构是低级别互斥同步基元,在等待获取锁时旋转。 在多核计算机上,当等待时间预计较短且争用最少时, SpinLock 性能可以优于其他类型的锁。 但是,建议仅在分析System.Threading.Monitor方法或Interlocked方法显著降低程序性能时使用SpinLock

即使尚未获取锁,SpinLock 也可能会生成线程的时间切片。 这样做可以避免线程优先级反转,并使垃圾回收器能够取得进展。 使用SpinLock时,请确保没有线程持有锁的时间超过一个极短的时间范围,并且线程在持有锁时不会阻塞。

由于 SpinLock 是值类型,因此如果希望两个副本引用的是同一个锁,必须通过引用显式传递它。

有关如何使用此类型的详细信息,请参阅 System.Threading.SpinLock。 有关示例,请参阅 如何:使用 SpinLock 进行 Low-Level 同步

SpinLock 支持可在开发阶段使用的 线程-跟踪 模式,以帮助跟踪在特定时间持有锁的线程。 线程跟踪模式对于调试非常有用,但我们建议在程序的发布版本中将其关闭,因为它可能会降低性能。 有关详细信息,请参阅 如何:在 SpinLock 中启用 Thread-Tracking 模式

另请参阅