当前位置:嗨网首页>书籍在线阅读

04-多线程代价

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

7.2.1 多线程代价

虽然多线程有很多优势,但也不是毫无代价。事实上,有些最可怕的bug就是由多线程引起的。设计、编写、理解,以及最重要的——调试多线程程序,这些复杂度都远远高于单个线程的进程。

对线程恐惧的原因还在于:多个虚拟的处理器,但是只有一个虚拟化内存实例。换句话说,多线程的进程有多个事件在同时运行(并发性),而这些事件共享同一块内存。自然而然地,同一个进程的线程会共享资源——也就是说,需要读或写同一份数据。因此,理解程序如何工作就从理解简单的序列化执行指令转变成对多线程独立运行的理解,时间和顺序不可预测,但结果肯定是正确的。如果线程同步失败,会造成输出脏数据,运行出错以及程序崩溃。由于理解和调试多线程代码非常困难,因此线程模型和同步策略必须从一开始就是系统设计的一部分。