行程與執行緒的概念
程式(資源分配的最小單位):是一個動態概念,是競爭電腦系統資源(CPU 、記憶體、IO等)的基本單位,是並發執行的程序在執行過程中分配和管理資源的基本單位。
執行緒(程式執行的最小單位):是比行程更小的獨立運行的基本單位,執行緒也被稱為輕量級進程。是CPU調度和分派的基本單位。
一個程式至少一個行程,一個行程至少一個執行緒。
程式與執行緒的差異
1、位址空間:同一行程的執行緒共享本程序的位址空間,而行程之間則是獨立的位址空間;
2、資源擁有:同一進程內的執行緒共享本進程的資源,如IO、記憶體、CPU等,但是進程之間的資源是獨立的;
3 、所以多行程程式要比多執行緒更健壯,多執行緒程式只要有一個執行緒死掉,整個行程就死掉;但是一個行程崩潰後,在保護模式下不會對其他行程產生影響,因為行程有自己的獨立的位址空間;
4、進程切換時,消耗的資源大,效率高。所以在涉及到頻繁切換時,使用線程要比進程好。如果同時進行並且又要共享某些變數的並發操作,只能用執行緒。
5、執行過程:進程相當於一個應用程式執行的實例,所以每個獨立的進程都有一個程式運行的入口、程式順序執行序列和程式運行出口。每個執行緒相當於這個應用程式(進程)的一個執行流,所以不能獨立執行必須依存在應用程式(進程)之中,由應用程式提供多個執行緒執行控制;
6、執行緒是處理器調度的基本單位,但是行程不是;
7、執行緒和行程都可以並發執行;
##優缺點
執行緒執行開銷小,但是不利於資源管理與保護。執行緒適合在SMP(Symmetric Multi-Processing)機器(多CPU系統)上運作。 進程執行開銷大,但是能夠很好的進行資源管理和保護。 推薦教學:以上是java中進程與執行緒的區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!