据说多线程程序很难编写正确。最近学习我才发现,多线程程序不仅难于编写,而且也难以理解。通过总结,我发现了一个重要的原因,那就是我对于线程的理解不是那么正确或者说不那么深入(我估计像我这样的人还挺多)。
我们之所以进行多线程编程,无非为了两个原因(或其中之一): 1. 关注点分离(separation of concerns),也就是将不相关的操作隔离,使得我们在某一时刻只关注一件事(人的理解能力是有限的),这样能够使程序的设计编写和理解变得简单; 2. 充分利用硬件资源,达到性能提升。
如果我们对线程概念理解有误,则编写程序维护程序的代价就会要超过多线程给我们带来的好处,那样我们还不如进行传统的单线程程序开发。所以说对于概念的准确理解对于我们进行程序设计(可以说是任何工作)有着至关重要的作用。