1. 程式人生 > >java並發工具學習 01 進程與線程基礎

java並發工具學習 01 進程與線程基礎

ava 多處理器 科技 進程通訊 存在 空間 會有 過時 主線程

在並發程序設計中,有兩個基本的單位:進程和線程。並發程序設計主要是針對線程而言,當然,進程也是非常重要的。
操作系統包含很多進程與線程。即使在單核系統中(systems that only have a single execution core)也是這樣的,因此,單核系統實際上只有一個線程在運行,通過時間片來實現線程並發。
隨著科技的發展,多處理器系統或多核處理器系統變得越來越普通,這使得系統處理並發的能力得到了很大的提升,當然,在單處理器單核系統也會有並發的情況。

進程:
每個進程都有用獨立的執行環境。每個進程都擁有私有的、完整的運行資源集(尤其是私有的內存空間)。
有人通常把一個應用看成一個進程,應用準確來說應該是多個協作的進程的集合。大多數系統都支持進程通訊(IPC: inter process communication),如通過管道(pipe)或套接字(socket)等方式。IPC不僅能實現系統內部進程的通訊,也能實現系統間進程的通訊。
java虛擬機運行時候大多數時候只有一個單一的進程,你也可以通過ProcessBuilder建立新的進程。

線程:
線程又被稱為輕量級進程(lightweight processes)。進程和線程頭提供了執行環境,但是建立一個線程消耗的資源要比建立一個進程少。
線程運行與進程內部,每個進程至少有一個線程。線程之間共享所屬進程的資源,包括內存、文件等。這使得程序運行更高效,單頁存在很多潛在的問題。
多線程是java的基本特性,而從一個開發者角度出發,每個java項目啟動時候只有一個線程,即主線程。通過主線程再建立新的線程。

java並發工具學習 01 進程與線程基礎