進程與線程的區別

要解釋,進程和線程的區別,首先要了解,什麼是線程,什麼是進程?網上關於進程和線程的說法有很多,我們先看一下?

1、什麼是進程?什麼是線程?

#解釋1:
進程:是程序的一次執行過程,是一個動態概念,是程序在執行過程中分配和管理資源的基本單位,每一個進程都有一個自己的地址空間,至少有 5 種基本狀態,它們是:初始態,執行態,等待狀態,就緒狀態,終止狀態。

線程:是CPU調度和分派的基本單位,它可與同屬一個進程的其他的線程共享進程所擁有的全部資源。

#解釋2:
進程:是包換上下文切換的程序執行時間總和 = CPU加載上下文+CPU執行+CPU保存上下文

線程:是共享了進程的上下文環境,的更爲細小的CPU時間段,CPU在執行的時候沒有進行上下文切換的

進程和線程都是一個時間段的描述,是CPU工作時間段的描述,不過是顆粒大小不同。

#解釋3
進程:是資源分配的最小單位

線程:是CPU調度的最小單位

#解釋4:
進程:在一定的環境下,把靜態的程序代碼運行起來,通過使用不同的資源,來完成一定的任務。比如說,進程的環境包               括環境變量,進程所掌控的資源,有中央處理器,有內存,打開的文件,映射的網絡端口等等。

          一個系統中,有很多進程,它們都會使用內存。爲了確保內存不被別人使用,每個進程所能訪問的內存都是圈好的。一人一份,誰也不干擾誰。這裏給大家想強調的就是,進程需要管理好它的資源

線程:作爲進程的一部分,扮演的角色就是怎麼利用中央處理器去運行代碼。這其中牽扯到的最重要資源的是中央處理器               和其中的寄存器,和線程的棧(stack)。這裏想強調的是,線程關注的是中央處理器的運行,而不是內存等資源的管理。 

#解釋5:

進程:是重量級的線程,通常我們也稱進程爲heavy-weight process,

線程:是light-weight process

2. 進程和線程的關係 


        通過不同的解釋,來一窺進程和線程關係。很久之前,只有進程,進程資源分配也是調度的最小單位。後來,cpu發展越來越快,但是進程切換很浪費事件和資源。於是誕生了線程,把進程進行了更細的劃分

從此之後,

進程:強調了程序運行資源的管理,即資源分配的最小單位

線程:強調了cpu的利用,即調度的最小單元

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章