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