談談並行、並發或多線程


1.CPU的發展趨勢:

     核心數目依舊會越來越多,根據摩爾定律,由於單個核心性能提升有着嚴重的瓶頸問題,普通的PC桌面在2018年可能回到24核心。

2.並發和並行的區別:

     所有的並發處理都有排隊等候,喚醒和執行這三個步驟,所以並發是宏觀的觀念,在微觀上他們都是序列被處理的,只不過資源不會在某一個上被阻塞(一般是通過時間片輪轉),所以在宏觀上多個幾乎同時到達的請求同時在被處理。如果是同一時刻到達的請求也會根據優先級的不同,先后進入隊列排隊等候執行。

     並發與並行是兩個既相似但是卻不相同的概念:

         並發性:又稱共行性,是指處理多個同時性活動的能力,。

         並行:指同時發生兩個並發事件,具有並發的含義。並發不一定並行,也可以說並發事件之間不一定要同一時刻發生。 

     並發的實質是一個物理CPU(也可以是多個物理CPU)在若干個程序之間多路復用,並發性是對有限物理資源強制行使 多用戶共享以提高效率。

     並行指兩個或兩個以上事件或活動在同一時刻發生,在多道程序環境下,並行使多個程序同一時刻可在不同CPU上同時執行。    

     並發是在同一個cpu上同時(不是真正的同時,而是看來是同時,因為CPU要在多個程序之間切換)運行多個程序。

     並行是每一個CPU運行一個程序。

     打個比方:並發就像一個人(CPU)喂兩個小孩(程序)吃飯,表面上是兩個小孩在吃飯,實際是一個人在喂。

                   並行就是兩個人喂兩個小孩子吃飯。 

3.並發、並行和多線程的關系:

     並行需要兩個或兩個以上的線程跑在不同的處理器上,並發可以跑在一個處理器上通過時間片進行切換。

           

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM