java併發編程之進程與線程的區別(一)

1.什麼是進程:

(1)用進程來對應一個程序,每個進程對應一定的內存地址空間,並且只能使用它自己的內存空間,各個進程間互不干擾。(參考計算機任務管理器裏面的進程列表)

(2)程序是靜態的,進程是動態的。程序是一個靜態的指令集合,而進程是一個正在系統中運行的指令集合,有了時間的概念,生命週期。

(3)併發,能夠讓操作系統從宏觀上看起來同一個時間段有多個任務在執行。換句話說,進程讓操作系統的併發成爲了可能。【宏觀上】

2.什麼是線程:

(1)線程讓進程的內部併發成爲可能【微觀上】

(2)線程是進程中執行運算最小的單位,是進程中的一個實體,是被系統獨立調度和分派的基本單位。

(3)同一進程中的多個線程之間可以併發執行。

3.進程與線程的關係:

(1)一個線程只能屬於一個進程,而一個進程可以有多個線程,但至少有一個線程。

(2)線程是共同享有進程佔有的資源和地址空間的。

(3)區別:1.進程是操作系統進行資源分配的基本單位。2.線程是操作系統進行調度的基本單位

發佈了39 篇原創文章 · 獲贊 14 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章