我很好奇,开始寻找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
。或者,如果您正在处理原子,则可以使用pthread_mutex_t
。旧的自旋锁已过时,建议使用此OSAtomicXXX
代替。所有这些选项都埋在OSAtomicXXX
中。
不用说,在Objective-C中,您仍然还有os_unfair_lock
和man
pages。
旧的man
列举了一些锁定选择。