首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

并发编程实战-第一部分总结

序文:

如果你没有时间阅读这本,那你就来对地方了。小编会将每一章刨去废话,取其精华。分享给大家。如果觉得可以请不要忘了关注小编。我会定期跟新java 中的经典书籍。

正文:

第一部分总结:

1.所有的并发问题都可以归结为如何协调对并发状态的访问,可变状态越少,越容易确保线程安全。

2.尽量将属性声明为final类型,除非它们是可变的。

3.不可变对象一定是线程安全的。

不可变对象能极大地降低鬓发编程的复杂性。它们更为简单而且安全,可以任意共享而无需使用加锁或保护性复制等机制。(只对这个对象操作的时候,如果是复合操作另作考虑)

4.封装有助于管理复杂性。

将数据封装在对象中,更容易维持不变性条件。(封装的不好就会发布逸出,别人就想怎么改怎么改,麻烦大了)

5.用锁保护每个可变的共享变量。

6.当保护同一个不变性条件中的所有变量时,要使用同一个锁。

7.在执行复合操作期间,要持有锁。

8.如果从过个线程中访问同一个可变变量时没有使用同步锁,(不是原子变量)那么线程就会出现问题。

9.不要存在侥幸心理,我这次执行没有出现线程问题,就不用同步。

10.再设计过程中要考虑线程安全,要文档化。(便于后面的人知道)

11.当只有一个共享变量的时候,推荐使用原子变量。

12.当一个变量只有一个线程修改,其他线程要保证可见性,就可以使用volited 声明变量。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190208A0622U00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券