如題所示,好多人都對線程,進程,併發,並行混淆,不能清除理解定位,忽然之間想到了一些本身的理解,分享出去但願能給你們帶來思路,不對之處但願你們指出來共同進步。併發
進程:是向系統申請計算機資源的最小單位,如向系統申請計算機的cpu資源、內存資源外設硬盤資源等的基本單位,系統若是獲得相應後會容許這個進程開始使用各類資源,如在win7下打開一個QQ.exe,這個就是一個進程申請到容許的例子;spa
線程:線程是向系統申請CPU資源的最小單位,與上面的進程最小單位相比,它更精準只是使用到CPU的資源,不包括其餘的資源,由於它是屬於一個進程而存在的,若是沒有進程線程不會單獨存在在系統中容許,能夠說進程是線程的運行生存環境是相互依賴的關係線程
並行:多個任務在同一時間發生的,每一個認爲都有一個對應cpu進行處理進程
併發:多個任務同時發生,只有一個cpu安裝分時的段去處理每一個任務碎片,總體每一個任務都獲得運行內存
能夠說進程、線程是從申請者的角度去描述了計算機系統任務被執行的單位資源
併發、並行是從執行者即計算機處理器CPU處理任務的角度硬件
他們是不一樣方面的描述,如消費者跟賣家,一個是站在消費者角度描述消費者行爲分類,而一個是站在賣家角度去分類描述,他們之間如何有可比性並行
線程、進程關係以下方法
併發、並行關係圖im
併發、並行都是在多任務處理實現上出現的不一樣方法解決方法,
併發在cpu資源受限的單核狀況下能夠把多個任務切分爲時間片斷輪流執行從而宏觀達到多任務同時運行的效果;
並行是真正意義上每個任務對應一個cpu執行的方案
兩個方案只是在硬件資源狀況不一樣狀況下出現解決方案而已
最後綜述圖示以下
以上都本身想到,不對之處但願大神指點共同進步