Objective-C/Swift中是否有除os_unfair_lock以外的原生C级锁?
Is there any native C-level lock other than os_unfair_lock in Objective-C/Swift?
我很好奇并开始寻找 iOS/macOS 平台中所有可用的 C 级同步工具。但是,根据官方文档 (https://developer.apple.com/documentation/os/synchronization?language=objc),os_unfair_lock
似乎是唯一可用的同步工具。
我错过了什么吗? C 级 semaphore/monitor 工具在哪里?
所有旧的 C 锁都在那里,但现在他们正试图引导所有人转向 os_unfair_lock
。请参阅 Concurrent Programming with GCD 他们讨论 C 锁机制的地方(以及如果你愿意,你将如何在 Swift 中使用它们),并且这个讨论涉及他们现在关于锁的思考过程。
但是你可以使用pthread_mutex_t
like before. Or if you’re dealing with an atomic, you can use OSAtomicXXX
. The old spinlock has been deprecated, with this os_unfair_lock
recommended in lieu of that. All of these options are buried in the man
pages.
不用说,从 Objective-C 开始,您还有 NSLock
, NSRecursiveLock
和 @synchronized
指令。
旧的 Threading Programming Guide: Using Locks 列举了一些锁定选项。
我很好奇并开始寻找 iOS/macOS 平台中所有可用的 C 级同步工具。但是,根据官方文档 (https://developer.apple.com/documentation/os/synchronization?language=objc),os_unfair_lock
似乎是唯一可用的同步工具。
我错过了什么吗? C 级 semaphore/monitor 工具在哪里?
所有旧的 C 锁都在那里,但现在他们正试图引导所有人转向 os_unfair_lock
。请参阅 Concurrent Programming with GCD 他们讨论 C 锁机制的地方(以及如果你愿意,你将如何在 Swift 中使用它们),并且这个讨论涉及他们现在关于锁的思考过程。
但是你可以使用pthread_mutex_t
like before. Or if you’re dealing with an atomic, you can use OSAtomicXXX
. The old spinlock has been deprecated, with this os_unfair_lock
recommended in lieu of that. All of these options are buried in the man
pages.
不用说,从 Objective-C 开始,您还有 NSLock
, NSRecursiveLock
和 @synchronized
指令。
旧的 Threading Programming Guide: Using Locks 列举了一些锁定选项。