1.线程的状态
![](https://img.haomeiwen.com/i2182103/05fd60f001e75739.png)
2.多线程的安全隐患
![](https://img.haomeiwen.com/i2182103/65c216722b6d705a.png)
3.多线程的同步问题
![](https://img.haomeiwen.com/i2182103/4f6f09d48544c273.png)
//没有加锁之前
![](https://img.haomeiwen.com/i2182103/dabacca445629bf0.png)
//加锁之后:
![](https://img.haomeiwen.com/i2182103/1be5d8784a2d39b4.png)
下面不是唯一的:
![](https://img.haomeiwen.com/i2182103/81dd3c1305c8cca7.png)
![](https://img.haomeiwen.com/i2182103/e8095595dab40cbe.png)
4.原子属性和非原子属性:
![](https://img.haomeiwen.com/i2182103/e747b4464cf5b579.png)
![](https://img.haomeiwen.com/i2182103/01adb647fa4019a6.png)
总结原子属性和非原子属性:
iOS开发的建议
所有属性都声明为nonatomic
尽量避免多线程抢夺同一块资源
尽量将加锁、资源抢夺的业务逻辑交给服务器端处理,减小移动客户端的压力
//没有加锁之前
//加锁之后:
下面不是唯一的:
iOS开发的建议
所有属性都声明为nonatomic
尽量避免多线程抢夺同一块资源
尽量将加锁、资源抢夺的业务逻辑交给服务器端处理,减小移动客户端的压力
本文标题:4.多线程基础(四) 线程的状态,安全性
本文链接:https://www.haomeiwen.com/subject/pwfbpxtx.html
网友评论