串行,並發,並行
假設有事件A,B,C。A耗時15小時,投入5小時,等待10小時,B耗時10小時,投入2小時,等待8小時,
C耗時10小時,投入10小時。有3,中處理事情的方式。
串行:事件A,B,C逐個逐個執行。(需要投入1個人)
並行:事件A,B,C一起同時執行。(需要投入3個人)
並發:A等待的時候做B,B等待的時候做C。(需要投入一個人)
分析:
軟件角度:
並發指某個軟件在某段時間內以交替的方式去完成多個任務,而並行是多個軟件以齊頭並進的方式去完成多個任務。
硬件角度:
並發可以理解為一個處理器采用時間片分配的技術處理多個任務,而並行是多個處理器同時處理多個任務。
多線程編程的實質就是將任務的處理方式由串行改為並發,實現並發化,有的任務可以改變的就叫可並發化。