首頁 >Java >Java基礎 >java執行緒與行程的區別

java執行緒與行程的區別

(*-*)浩
(*-*)浩原創
2019-11-09 14:02:102984瀏覽

java執行緒與行程的區別

什麼是進程,什麼是執行緒?             (建議學習:java課程  

流程:是同時執行的程式在執行過程中分配與管理資源的基本單位,是動態概念,競爭電腦系統資源的基本單位。

執行緒:是進程的一個執行單元,是進程內科調度實體。比進程更小的獨立運作的基本單位。執行緒也被稱為輕量級進程。

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

進程執行緒的差異

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

2、資源擁有:同一進程內的執行緒共享本進程的資源,但是進程之間的資源是獨立的。

3、一個行程崩潰後,在保護模式下不會對其他行程產生影響,但是一個執行緒崩潰整個行程都死掉。所以多進程要比多執行緒健壯。

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

5、執行過程:每個獨立的進程程都有一個程式運行的入口、順序執行序列和程式入口。但是執行緒不能獨立執行,必須依存在應用程式中,由應用程式提供多個執行緒執行控制。

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

7、兩者皆可並發執行。

一個執行緒只屬於一個行程,但是一個行程可以擁有多個執行緒,但至少一個執行緒

資源分配個行程,同一行程中所有執行緒共享該行程的所有資源。

優缺點:

執行緒執行開銷小,但是不利於資源的管理和保護。執行緒適合在SMP機器(雙CPU系統)上運作。

進程執行開銷大,但是能夠很好的進行資源管理和保護。進程可以跨機器前移。

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

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