作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我需要在发出异步请求之前设置一个互斥锁,然后在另一个线程上的这个请求的回调中解锁互斥锁。
苹果文档说:
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/
我是一名优秀的程序员,十分优秀!