一、執行緒與進程的概念
#程式:是正在執行的程序,是系統分配資源的最小單位。
執行緒:是進程中執行的一條路徑,是系統調度的最小單位。
二、執行緒與行程的關係
1、一個行程可以有多個線程,一個執行緒只能屬於一個行程(隸屬)。
2、同一個行程下的所有執行緒共享該行程下的所有資源(資源)。
3、真正在處理機上運行的是線程而不是進程,線程是進程內的一個執行單元,是進程內的可調度實體(運行實體)。
三、執行緒與行程的差異
調度:執行緒為調度的基本單位,進程是作為擁有資源的基本單位。
並發性:進程之間和執行緒之間都可以並發執行。
資源:進程是擁有資源的一個獨立單位,執行緒不擁有系統資源,但可以存取隸屬於進程的資源,執行緒有自己的堆疊空間和程式計數器。
系統開銷:進程開銷大於執行緒開銷,執行緒的上下文切換速度遠快於進程間上下文切換。
對於每一個進程內的多個線程,static data segment(包括全域變數、static物件)、Heap(堆,malloc和new分配的空間)是共享的。每個執行緒有自己獨立的Stack(棧),儲存局部變數。
推薦教學:linux教學
#以上是linux執行緒與行程的區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!