一、線程與進程的概念
進程:是正在運行的程序,是系統分配資源的最小單位。
線程:是進程中執行的一條路徑,是系統調度的最小單位。
二、線程與進程的關系
1、一個進程可以有多個線程,一個線程只能屬于一個進程(隸屬)。
2、同一個進程下的所有線程共享該進程下的所有資源(資源)。
3、真正在處理機上運行的是線程而不是進程,線程是進程內的一個執行單元,是進程內的可調度實體(運行實體)。
三、線程與進程的區別
調度:線程為調度的基本單位,進程是作為擁有資源的基本單位。
并發性:進程之間和線程之間都可以并發執行。
資源:進程是擁有資源的一個獨立單位,線程不擁有系統資源,但可以訪問隸屬于進程的資源,線程有自己的棧空間和程序計數器。
系統開銷:進程開銷大于線程開銷,線程的上下文切換速度遠快于進程間上下文切換。
對于每一個進程內的多個線程,Static data segment(包括全局變量、static對象)、Heap(堆,malloc和new分配的空間)是共享的。每個線程有自己獨立的Stack(棧),存儲局部變量。
推薦教程:linux教程
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END
喜歡就支持一下吧
相關推薦