我一直在使用NSLocks同步敏感的代码部分,但由于它们必须从锁定它们的同一个线程中解锁而一直遇到问题.然后我发现GCD的dispatchSemaphores似乎做了同样的事情,增加了方便性,可以从任何线程发出信号.不过,我想知道,如果这种便利是以线程安全为代价的.更换是否可取
let lock = NSLock() lock.lock() // do things... lock.unlock()
同
let semaphore = dispatchSemaphore(value: 1) semaphore.wait() // do things... semaphore.signal()
或者我会遇到有关线程安全的问题吗?
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。