首頁  >  文章  >  Java  >  java中進程與執行緒的區別

java中進程與執行緒的區別

王林
王林原創
2019-11-12 17:26:413685瀏覽

java中進程與執行緒的區別

行程與執行緒的概念

程式(資源分配的最小單位):是一個動態概念,是競爭電腦系統資源(CPU 、記憶體、IO等)的基本單位,是並發執行的程序在執行過程中分配和管理資源的基本單位。

執行緒(程式執行的最小單位):是比行程更小的獨立運行的基本單位,執行緒也被稱為輕量級進程。是CPU調度和分派的基本單位。

一個程式至少一個行程,一個行程至少一個執行緒。

程式與執行緒的差異

1、位址空間:同一行程的執行緒共享本程序的位址空間,而行程之間則是獨立的位址空間;

2、資源擁有:同一進程內的執行緒共享本進程的資源,如IO、記憶體、CPU等,但是進程之間的資源是獨立的;

3 、所以多行程程式要比多執行緒更健壯,多執行緒程式只要有一個執行緒死掉,整個行程就死掉;但是一個行程崩潰後,在保護模式下不會對其他行程產生影響,因為行程有自己的獨立的位址空間;

4、進程切換時,消耗的資源大,效率高。所以在涉及到頻繁切換時,使用線程要比進程好。如果同時進行並且又要共享某些變數的並發操作,只能用執行緒。

5、執行過程:進程相當於一個應用程式執行的實例,所以每個獨立的進程都有一個程式運行的入口、程式順序執行序列和程式運行出口。每個執行緒相當於這個應用程式(進程)的一個執行流,所以不能獨立執行必須依存在應用程式(進程)之中,由應用程式提供多個執行緒執行控制;

6、執行緒是處理器調度的基本單位,但是行程不是;

7、執行緒和行程都可以並發執行;

##優缺點

執行緒執行開銷小,但是不利於資源管理與保護。執行緒適合在SMP(Symmetric Multi-Processing)機器(多CPU系統)上運作。

進程執行開銷大,但是能夠很好的進行資源管理和保護。

推薦教學:

Java教學

以上是java中進程與執行緒的區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn