淺談java線程與進程的區別

什麼是進程,什麼是線程?  java

進程:是併發執行的程序在執行過程當中分配和管理資源的基本單位,是一個動態概念,競爭計算機系統資源的基本單位。segmentfault

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

一個程序至少一個進程,一個進程至少一個線程。併發

進程線程的區別spa

一、地址空間:同一進程的線程共享本進程的地址空間,而進程之間則是獨立的地址空間。線程

二、資源擁有:同一進程內的線程共享本進程的資源,可是進程之間的資源是獨立的。blog

三、一個進程崩潰後,在保護模式下不會對其餘進程產生影響,可是一個線程崩潰整個進程都死掉。因此多進程要比多線程健壯。進程

四、進程切換時,消耗的資源大,效率高。因此涉及到頻繁的切換時,使用線程要好於進程。一樣若是要求同時進行而且又要共享某些變量的併發操做,只能用線程不能用進程。資源

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

六、線程是處理器調度的基本單位,可是進程不是。

七、二者都可併發執行。

一個線程只屬於一個進程,可是一個進程能夠擁有多個線程,但至少一個線程

資源分配個進程,同一進程中全部線程共享該進程的全部資源。

優缺點:

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

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

以上就是java線程與進程的區別的詳細內容,但願對你有所幫助。

閱讀原文:java線程與進程的區別

相關文章:
什麼是java的標識符?
你知道什麼是java的方法重載嗎?
java中的工廠模式是什麼

相關文章
相關標籤/搜索