iOS各种锁的描述

2017-01-18  本文已影响23人  忘川_之上

1、atomic  ->线程安全的,较影响性能  nonatomic -> 线程不安全,推荐使用的,从下图可以看出实际上atomic线程高并发时候也并不安全。

1

2、 @synchronized 的作用是创建一个互斥锁,保证在统一时间对对象的访问唯一,在下图中就已经可以保证线程访问安全了,不过需要注意的是这边的互斥锁锁的是要修改的对象的属性 的对象,就如下图中锁住的是self,而操作的是self的属性。

2

3、NSLock的使用

3

4、dispatch_semaphore利用信号量进行锁定

4

5、最后聊一下单类吧,全局有且只有一个dispatch_once_t,推荐使用dispatch_once的方法来书写,相对性能会好些

5
上一篇 下一篇

猜你喜欢

热点阅读