首頁 >運維 >linux運維 >linux執行緒與行程的區別

linux執行緒與行程的區別

王林
王林原創
2019-11-02 17:10:126193瀏覽

linux執行緒與行程的區別

一、執行緒與進程的概念

#程式:是正在執行的程序,是系統分配資源的最小單位。

執行緒:是進程中執行的一條路徑,是系統調度的最小單位。

二、執行緒與行程的關係

1、一個行程可以有多個線程,一個執行緒只能屬於一個行程(隸屬)。

2、同一個行程下的所有執行緒共享該行程下的所有資源(資源)。

3、真正在處理機上運行的是線程而不是進程,線程是進程內的一個執行單元,是進程內的可調度實體(運行實體)。

三、執行緒與行程的差異

調度:執行緒為調度的基本單位,進程是作為擁有資源的基本單位。

並發性:進程之間和執行緒之間都可以並發執行。

資源:進程是擁有資源的一個獨立單位,執行緒不擁有系統資源,但可以存取隸屬於進程的資源,執行緒有自己的堆疊空間和程式計數器。

系統開銷:進程開銷大於執行緒開銷,執行緒的上下文切換速度遠快於進程間上下文切換。

對於每一個進程內的多個線程,static data segment(包括全域變數、static物件)、Heap(堆,malloc和new分配的空間)是共享的。每個執行緒有自己獨立的Stack(棧),儲存局部變數。

推薦教學:linux教學

#

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

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

相關文章

看更多