gpt4 book ai didi

objective-c - Objective-C NSLock : lock and unlock a NSLock on different threads

转载 作者:太空狗 更新时间:2023-10-30 03:57:58 36 4
gpt4 key购买 nike

我需要在发出异步请求之前设置一个互斥锁,然后在另一个线程上的这个请求的回调中解锁互斥锁。

苹果文档说:

Warning: The NSLock class uses POSIX threads to implement its locking behavior. When sending an unlock message to an NSLock object, you must be sure that message is sent from the same thread that sent the initial lock message. Unlocking a lock from a different thread can result in undefined behavior.

如何避免这种“未定义的行为”并使其按预期工作?

最佳答案

更好的是;使用 NSOperationQueue 或 GCD 队列作为同步原语。

锁很昂贵,而信号量或多或少是带有计数器的锁。

基于队列的编码效率更高,尤其是在使用内置排队机制时。

关于objective-c - Objective-C NSLock : lock and unlock a NSLock on different threads,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6457045/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com