我正在研究Swift中Lock / Semaphore替代品的运营成本
从可以使用的不同替代品(例如DispatchQueue,objc_sync_enter,NSLock)中,我无法找到与运营成本相关的具体信息。
我希望实现线程安全操作。
我使用了以下语法:
objc_sync_enter(lock)
//thread safe operations
objc_sync_exit(lock)
哪种方法效果最好?不同选项涉及的任何其他考虑因素?
答案 0 :(得分:2)
根据Matt Gallagher的说法,OSSpinLock是Mac上最快的,但在iOS上存在问题。他建议在两个平台上使用pthread_mutex_t。
他关于这个主题的精彩文章,涵盖了包括你的objc_sync_enter在内的所有选项,是here。