進程:程序被加載到內存中執行後得到進程
程序和進程的區別:
- 程序是物理存儲空間中的數據文件
- 進程是內存中動態的運行實體
聯繫
- 一個程序可能對應多個進程
- 一個進程可能包含多個程序
值得注意:
在當代操作系統中,資源分配的基本單位是進程;而CPU調度執行的基本單位是線程
線程:
- 進程內的一個執行單元
- 操作系統中一個可調度的實體
- 進程中相對獨立的一個控制流序列
- 執行時的現場數據和其他調度所需的信息
深入理解
- 進程中可以存在多個線程共享進程資源
- 線程是被調度的執行單元,而進程不是調度單元
- 線程不能脫離進程單獨存在,只能依賴於進程運行
- 線程有生命期,有誕生和死亡
- 任意線程都可以創建其它新的線程
進程中的多個線程並行執行,共享進程資源
小結:
- 線程是進程內部的具體執行單元
- 一個進程內部可以有多個線程存在
- 進程是操作系統資源分配的基本單位
- 線程是操作系統調度執行的基本單位