一、为什么需要并发
并发是一种解耦合的策略,帮助我们做什么事情(目标)和什么时候做(时机)分开。这样可以明显改进应用程序的吞吐量(获得更多的CPU调度时间)和结构(程序有多个分部在协同工作)。
二、常见对并发的正解和误解。
1.性能
(错误)并发总能改进性能
(正确)并发在CPU空闲的情况下能明显改进程序性能,但当线程数量较多的时候,线程频繁调度切换反而会让系统的性能下降。
2.程序设计
(错误)编写并发程序无需修改原有的设计
(正确)目标与时机的解耦往往会对系统结构产生巨大的影响。
三、对并发编程的认识
1.编写并发程序会在代码上增加开销
2.并发中的缺陷因为不易重现和发现,所以并发需要对设计策略从根本上定制和修改。
四、并发编程的原则和技巧
1.单一职责原则:分离并发代码和其他代码(并发代码有自己的开发、修改和调优生命周期)。
2.限制数据作用域:两个线程修改共享对象的同一字段时,可能会相互干扰,需要构造临界区等方法。
3.使用数据副本:数据副本是避免共享数据的好方法,数据副本以只读的方式处理。