2018-07-31

各的性能对比

对以上各个锁进行1000000此的加锁解锁的空操作时间如下:

OSSpinLock:                          46.15 ms

dispatch_semaphore:          56.50 ms

pthread_mutex:                    178.28 ms

NSCondition:                          193.38 ms

NSLock:                                  175.02 ms

pthread_mutex(recursive):  172.56 ms

NSRecursiveLock:                  157.44 ms

NSConditionLock:                  490.04 ms

@synchronized:                      371.17 ms

总的来说:

OSSpinLock和dispatch_semaphore的效率远远高于其他。

@synchronized和NSConditionLock效率较差。

鉴于OSSpinLock的不安全,所以我们在开发中如果考虑性能的话,建议使用dispatch_semaphore。

如果不考虑性能,只是图个方便的话,那就使用@synchronized。


著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

作者:景铭巴巴

链接:https://www.jianshu.com/p/938d68ed832c

來源:

著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

你可能感兴趣的:(2018-07-31)