搜尋
首頁JavaJava入門java中的執行緒與進程的區別

java中的執行緒與進程的區別

Dec 03, 2019 pm 03:56 PM
java差別執行緒行程

java中的執行緒與進程的區別

一、定義

進程是具有一定獨立功能的程式關於某個資料集合上的一次運行活動,進程是系統進行資源分配和調度的一個獨立單位。

執行緒是進程的一個實體,是CPU調度和分派的基本單位,它是比行程更小的能獨立運作的基本單位。執行緒本身基本上不擁有系統資源,只擁有一點在運行中必不可少的資源(如程序計數器,一組寄存器和棧),但是它可與同屬一個進程的其他的線程共享進程所擁有的全部資源。

二、關係

一個執行緒可以建立和撤銷另一個執行緒;同一個行程中的多個執行緒之間可以並發執行。

相對進程而言,執行緒是一個更接近執行體的概念,它可以與同進程中的其他執行緒共享數據,但擁有自己的堆疊空間,擁有獨立的執行序列。

線上影片教學推薦:java影片教學

三、區別

行程與執行緒的主要差異在於它們是不同的作業系統資源管理方式。

進程有獨立的位址空間,一個進程崩潰後,在保護模式下不會對其它進程產生影響,而執行緒只是一個進程中的不同執行路徑。

執行緒有自己的堆疊和局部變量,但執行緒之間沒有單獨的位址空間,一個執行緒死掉就等於整個行程死掉,所以多行程的程式要比多執行緒的程式健壯,但在進程切換時,耗費資源較大,效率差一些。但對於一些要求同時進行並且要共享某些變數的並發操作,只能用線程,不能用進程。

1) 簡而言之,一個程式至少有一個行程,一個行程至少有一個執行緒。

2) 執行緒的分割尺度小於進程,使得多執行緒程式的並發性高。

3) 另外,進程在執行過程中擁有獨立的記憶體單元,而多個執行緒共享內存,從而大大提高了程式的運作效率。

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

5) 從邏輯角度來看,多執行緒的意義在於一個應用程式中,有多個執行部分可以同時執行。但作業系統並沒有將多個執行緒看做多個獨立的應用,來實現進程的調度和管理以及資源分配。這就是進程和執行緒的重要區別。

相關文章教學推薦:java入門學習

#

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

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

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器