程序:含有指令和數據的文件,被存儲在磁盤或其他的數據存儲設備中,也就是說程序是靜態的代碼。
進程:程序的一次執行過程,是系統運行程序的基本單位,因此進程是動態的。系統運行一個程序就是一個進程從創建、運行到消亡的過程。
簡單來說,一個進程就是一個執行中的程序,它在計算機中一個指令接着一個指令執行着,同時,每個進程還占有某些系統資源如CPU時間,內存空間,文件,輸入輸出設備的使用權等。
線程:個進程在其執行的過程中可以產生多個線程。與進程不同的是同類的多個線程共享同一塊內存空間和一組系統資源,所以系統在產生一個線程,或是在各個線程之間作切換工作時,負擔要比進程小得多,也正因為如此,線程也被稱為輕量級進程。
線程上下文的切換比進程上下文的切換快得多
- 進程切換時,涉及到當前進程的CPU環境的保存和新被調度運行進程的CPU環境的設置。
- 線程切換僅需要保存和設置少量的寄存器內容,不涉及存儲管理方面的操作。