编写整洁的并发代码很难写正确。加入多线程和共享数据后,简单的代码会变成噩梦。要编写并发代码,就要严格地编写整洁的代码,否则将面临细微和不频繁发生的失败。
1、并发问题是由什么引起的?
1)、对共享数据的多线程操作,或使用了公共资源池。
2)、类似平静关闭或停止循环之类的边界情况尤其棘手。
2、为什么要并发?
并发是一种解耦策略。它帮助我们把做什么和何时做分解开。解耦目的与时机能明显改进应用程序的吞吐量和结构。
3、如何做并发防御?
分离并发相关代码与其他代码。
1)、限制数据作用域;
2)、使用数据副本;
3)、线程应尽可能地独立。
4、测试线程代码需要考虑哪些问题?
1)、将伪失败看做可能的线程问题;
2)、先使非线程代码可工作;
3)、编写可插拔的线程代码;
4)、编写可调整的线程代码;
5)、运行多于处理器数量的线程;
6)、在不同平台上运行;
7)、调整代码并强迫错误发生。
测试不能确保正确性,然而好的测试能尽量降低风险。
如果花点时间装置代码,就能极大的提升发生错误代码的机会。如果保证代码的整洁性,做对的可能性就会有翻天覆地的提高。