测试代码
测试结果
- NSLock: 2.694002 sec
- pthread_mutex: 1.761547 sec
- OSSpinlock: 0.362136 sec
- @synchronized: 6.849070 sec
可以看出来,用synchronized效率是最低的,而OSSpinlock效率高到无法直视。
详解synchronized OSSpinlock
结论
如果只是粗略的使用锁,不考虑性能问题可以使用synchronized。
如果对效率有较高的要求,还是采用OSSpinlock比较好。
因为Pthread的锁在也是用 OSSpinlock 实现的。OSSpinlock 的实现过程中,并没有进入系统kernel,使用OSSpinlock可以节省系统调用和上下文切换。
resources
@synchronized, NSLock, pthread, OSSpinLock showdown, done right
Coneboy版权所有
转载注明出处
西安 iOS 开发
测试代码