多线程基础(四)线程的状态、安全性
线程的状态
多线程的安全隐患
好比,上厕所,一个资源就好比这个厕所只有一个,你只有等别人上完开了门出来之后,你才可以进去吧。
为了体现这个安全隐患,我们通过一个“买票”的实例来体会这个东西:
加锁前:
加锁后:
下面的不是唯一的
原子属性和非原子属性
atomic和nonatomic(这两个可能会在面试中问到):
- iOS开发的建议
- 所有属性都声明为nonatomic
- 尽量避免多线程抢夺同一块资源
- 尽量将加锁、资源抢夺的业务逻辑交给服务器端处理,减小移动客户端的压力