线程安全方法Swift中的运营成本

时间:2017-10-21 05:48:28

标签: swift thread-safety locking semaphore

我正在研究Swift中Lock / Semaphore替代品的运营成本

从可以使用的不同替代品(例如DispatchQueue,objc_sync_enter,NSLock)中,我无法找到与运营成本相关的具体信息。

我希望实现线程安全操作。

我使用了以下语法:

objc_sync_enter(lock)
//thread safe operations
objc_sync_exit(lock)

哪种方法效果最好?不同选项涉及的任何其他考虑因素?

1 个答案:

答案 0 :(得分:2)

根据Matt Gallagher的说法,OSSpinLock是Mac上最快的,但在iOS上存在问题。他建议在两个平台上使用pthread_mutex_t。

他关于这个主题的精彩文章,涵盖了包括你的objc_sync_enter在内的所有选项,是here