iOS各种锁的描述

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

iOS各种锁的描述_第1张图片
1

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

iOS各种锁的描述_第2张图片
2

3、NSLock的使用

iOS各种锁的描述_第3张图片
3

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

iOS各种锁的描述_第4张图片
4

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

iOS各种锁的描述_第5张图片
5

你可能感兴趣的:(iOS各种锁的描述)