我很好奇,开始寻找 iOS/macOS 平台上所有可用的 C 级同步工具。然而,根据官方文档( https://developer.apple.com/documentation/os/synchronization?language=objc ),os_unfair_lock
似乎是唯一可用的同步工具。
我错过了什么吗?所有 C 级信号量/监视器工具在哪里?
最佳答案
所有旧的 C 锁都在那里,但现在他们试图引导每个人走向 os_unfair_lock
。请参阅Concurrent Programming with GCD他们讨论了 C 锁机制(以及如果你愿意的话如何在 Swift 中使用它们),这个讨论涉及到他们现在关于锁的思考过程。
但是你可以使用pthread_mutex_t
像以前一样。或者,如果您正在处理原子,则可以使用 OSAtomicXXX
。旧的自旋锁已被弃用,建议使用此 os_unfair_lock
来代替。所有这些选项都隐藏在 man
pages 中.
不用说,从 Objective-C 中,你仍然有 NSLock
, NSRecursiveLock
还有 @synchronized
指令。
旧的Threading Programming Guide: Using Locks列举了一些锁定替代方案。
关于ios - Objective-C/Swift 中除了 os_unfair_lock 之外还有其他原生 C 级锁吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60045664/