Linux中進程和線程的對比與區(qū)別
Linux中進程和線程的對比與區(qū)別
1.概念
進程:正在運行中的程序。
線程:進程中的一條執(zhí)行路徑。
2.區(qū)別
(1)通常在一個進程中可以包含若干個線程,它們可以利用進程所擁有的資源。在引入線程的操作系統(tǒng)中,通常都是把進程作為分配資源的基本單位,而把線程作為獨立運行和獨立調度的基本單位。
(2)線程和進程的區(qū)別在于,子進程和父進程有不同的代碼和數據空間,而多個線程則共享數據空間,每個線程有自己的執(zhí)行堆棧和程序計數器為其執(zhí)行上下文。多線程主要是為了節(jié)約CPU時間,發(fā)揮利用,根據具體情況而定。線程的運行中需要使用計算機的內存資源和CPU。
(3)進程間相互獨立,同一進程的各線程間共享。某進程內的線程在其它進程不可見。
(4)線程的上下文切換遠大于進程間上下文切換的速度。
(5)進程是不可執(zhí)行的實體,程序是一個沒有生命的實體,只有當處理器賦予程序生命時,它才能成為一個活動的實體,我們稱其為進程。
3.線程和進程的關系以及區(qū)別?
進程和線程的關系:
(1)一個線程只能屬于一個進程,而一個進程可以有多個線程,但至少有一個線程。
(2)資源分配給進程,同一進程的所有線程共享該進程的所有資源。
(3)處理機分給線程,即真正在處理機上運行的是線程。
(4)線程在執(zhí)行過程中,需要協作同步。不同進程的線程間要利用消息通信的辦法實現同步。線程是指進程內的一個執(zhí)行單元,也是進程內的可調度實體.
進程與線程的區(qū)別:
(1)調度:線程作為調度和分配的基本單位,進程作為擁有資源的基本單位
(2)并發(fā)性:不僅進程之間可以并發(fā)執(zhí)行,同一個進程的多個線程之間也可并發(fā)執(zhí)行
(3)擁有資源:進程是擁有資源的一個獨立單位,線程不擁有系統(tǒng)資源,但可以訪問隸屬于進程的資源.
(4)系統(tǒng)開銷:在創(chuàng)建或撤消進程時,由于系統(tǒng)都要為之分配和回收資源,導致系統(tǒng)的開銷明顯大于創(chuàng)建或撤消線程時的開銷。
以上就是Linux 中線程和進程的區(qū)別的詳解,如有疑問請留言或者到本站的社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關文章
Linux中搭建完整的samba服務器全攻略(centos版)
smb是一個協議名,它能被用于Web連接和客戶端與服務器之間的信息溝通。這篇文章主要介紹了Linux中搭建samba服務器全攻略(centos版),需要的朋友可以參考下2018-11-11
64位CentOS 6.0下搭建LAMP環(huán)境詳細步驟
這篇文章主要介紹了系統(tǒng)環(huán)境:Centos6.0 x64的lamp運行環(huán)境配置教程,需要的朋友可以參考下2013-07-07
Apache下禁止特定目錄執(zhí)行PHP 提高服務器安全性
之前在博文從PHP安全講DedeCms的安全加固中說過在PHP安全中保護“可寫目錄下的文件不允許被訪問到的重要性,還提出了改名文件夾的方式來保護該目錄。2009-11-11

