首頁  >  文章  >  Java  >  java中執行緒與進程的差別是什麼

java中執行緒與進程的差別是什麼

青灯夜游
青灯夜游原創
2018-12-15 15:33:2699302瀏覽

線程與進程的主要區別是:(同一進程中的)線程在共享的記憶體空間中運行,而進程在不同的記憶體空間中運行;線程使用wait(),notify(),notifyAll()等方法直接與其他執行緒(同一進程)通信,而進程需要使用「IPC」來與其他進程通訊。

java中執行緒與進程的差別是什麼

什麼是進程?

正在運行中的應用程序,通常稱為進程。每個行程都有自己獨立的位址空間(記憶體空間),每當使用者啟動一個行程時,作業系統就會為該行程分配一個獨立的記憶體空間,讓應用程式在這個獨立的記憶體空間中運作。

什麼是執行緒?

執行緒是一個輕量級的子程序,是最小的處理單元;是一個單獨的執行路徑。可以說:線程是進程的子集(部分)。

線程是獨立的。如果在一個執行緒中發生異常,則不會影響其他執行緒。它使用共享記憶體區域。

進程和執行緒的關係:

java中執行緒與進程的差別是什麼

#如上圖所示,作業系統中可以擁有更多個行程,一個行程裡可以擁有多個執行緒,執行緒在進程內執行。

進程和執行緒的差異:

1、容易建立新執行緒。但是,建立新進程需要重複父進程。

2、執行緒可以控制同一行程的其他執行緒。進程無法控制兄弟進程,只能控制其子進程。

3、進程擁有自己的記憶體空間。執行緒使用行程的記憶體空間,並且要和該行程的其他執行緒共享這個空間;而不是在行程中給每個執行緒單獨劃分一點空間。

4、(同一進程中的)執行緒在共享記憶體空間中運行,而進程在不同的記憶體空間中運行。

5、執行緒可以使用wait(),notify(),notifyAll()等方法直接與其他執行緒(同一進程)通訊;而,進程需要使用「進程間通訊」(IPC)來與操作系統中的其他進程通訊。

java中執行緒與進程的差別是什麼

說明:

IPC,即進程間通信,特別指作業系統提供的允許進程管理共享資料的一種機制。

總結:以上就是這篇文章的全部內容,希望能對大家的學習有所幫助。

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

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