進程是資源管理的最小單位,線程是程序執行的最小單位。在操作系統設計上,從進程演化出線程,最主要的目的就是更好的支持SMP(雙CPU系統,實際上是對稱多處理機系統中最常見的一種)以及減小(進程/線程)上下文切換開銷。
1.進程是程序的一次執行。 線程可以理解為程序中的執行的一段程序片段。
2.進程間是獨立的,這表現在內存空間、上下文環境上; 線程運行在進程空間內。
3.一般來講,進程無法突破進程邊界存取其他進程內的存儲空間;而線程由於處於進程空間內,所以同一個進程所產生的線程共享同一內存空間。
同一進程中的兩段代碼不能夠同時執行,除非引入線程。
4.線程是屬於進程的,當進程退出時該進程所產生的線程都會被強制退出並清除、線程占用資源要少於進程所占用的資源、進程和線程都可以有優先級。