操作系統--進程和線程的區別

  1. 進程是資源的分配和調度的一個獨立單元,而線程是CPU調度的基本單元(根本區別
  2. 同一個進程中可以包括多個線程,並且線程共享整個進程的資源(寄存器、堆棧、上下文),一個進行至少包括一個線程。系統在運行的時候會爲每個進程分配不同的內存空間;而對線程而言,除了CPU外,系統不會爲線程分配內存(線程所使用的資源來自其所屬進程的資源),線程組之間只能共享資源。(內存分配
  3. 進程結束後它擁有的所有線程都將銷燬,而線程的結束不會影響同個進程中的其他線程的結束
  4. 每個進程都有獨立的代碼和數據空間(程序上下文),線程可以看做小進程,同一類線程共享代碼和數據空間,每個線程都有自己獨立的運行棧和程序計數器(PC),線程是輕兩級的進程,它的創建和銷燬所需要的時間比進程小很多,所有操作系統中的執行功能都是創建線程去完成的
  5. 線程中執行時一般都要進行同步和互斥,因爲他們共享同一進程的所有資源
  6. 線程有自己的私有屬性TCB(Task Control Block),線程id,寄存器等,而進程也有自己的私有屬性進程控制塊PCB(Process Control Block),這些私有屬性是不被共享的,用來標示一個進程或一個線程的標誌
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章