Macos OSSpinLockLock何时已锁定?

Macos OSSpinLockLock何时已锁定?,macos,spinlock,Macos,Spinlock,当锁已经在同一线程中时,使用OSSpinLockLock会发生什么情况?(因此它应该“让我进来”) 我知道它没有计数器,但实现一个计数器是个问题,因为接下来我需要验证这是线程,计数为零,所有这些可能也需要被锁定…如果您试图从已经拥有它的线程锁定自旋锁,您将死锁。自旋锁不是递归的 您应该查看或更改设计,以避免递归锁定。谢谢,我只是在寻找旋转锁,以便在特定场景中获得更好的性能。类似于Windows上的关键部分。@VojtěchMeldaMeluzín,Windows关键部分也不是递归的。对于其余部分

当锁已经在同一线程中时,使用OSSpinLockLock会发生什么情况?(因此它应该“让我进来”)


我知道它没有计数器,但实现一个计数器是个问题,因为接下来我需要验证这是线程,计数为零,所有这些可能也需要被锁定…

如果您试图从已经拥有它的线程锁定自旋锁,您将死锁。自旋锁不是递归的


您应该查看或更改设计,以避免递归锁定。

谢谢,我只是在寻找旋转锁,以便在特定场景中获得更好的性能。类似于Windows上的关键部分。@VojtěchMeldaMeluzín,Windows关键部分也不是递归的。对于其余部分,自旋锁在低争用时很快:否则,它们会浪费CPU周期。不是这样,Windows关键部分是递归的。看这个:@VojtěchMeldaMeluzín,你说得对。我以前查过,读得太快了,觉得它的意思正好相反。