《深入理解計算機系統》讀書筆記-09
第 8 章的後半部分印象最深的就是“併發“了。
還記得之前在 《深入理解計算機系統》讀書筆記-01 最後闡述過我自己對“並行”和“併發”的思考,並且對這兩個概念進行了一點合理的辨析。在文章最後關於”超線程“的討論中,我以看書和泡腳兩個日常活動爲例,具體地區分了一下”並行“和”併發“的概念。
但看了第 8 章之後恍然發現,之前的認識存在一定的誤區。
實際上,“併發”是一個比“並行”更大的概念。用原文的話來講,“並行是併發的真子集”,也就是說:併發包括並行,並行屬於併發。
併發只要求多個進程的存續時間(即生命週期)存在重疊的部分,而不關心這些進程是否一定同時執行;並行則是一種強條件的併發,在滿足“多個進程生命週期存在重疊”的同時,還需要是在不同的處理器中或者以超線程方式同時執行各自的指令。