linux線程與進程的區別

linux線程與進程的區別

一、線程與進程的概念

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

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

二、線程與進程的關系

1、一個進程可以有多個線程,一個線程只能屬于一個進程(隸屬)。

2、同一個進程下的所有線程共享該進程下的所有資源(資源)。

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

三、線程與進程的區別

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

并發性:進程之間和線程之間都可以并發執行。

資源:進程是擁有資源的一個獨立單位,線程不擁有系統資源,但可以訪問隸屬于進程的資源,線程有自己的空間和程序計數器。

系統開銷:進程開銷大于線程開銷,線程的上下文切換速度遠快于進程間上下文切換。

對于每一個進程內的多個線程,Static data segment(包括全局變量、static對象)、Heap(,malloc和new分配的空間)是共享的。每個線程有自己獨立的Stack(棧),存儲局部變量

推薦教程:linux教程

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊6 分享