進程和線程的區(qū)別

概念

  • 進程,是計算機中的程序關(guān)于某個數(shù)據(jù)集合上的一次運行活動,是操作系統(tǒng)的基礎(chǔ),是系統(tǒng)進行資源分配和調(diào)度的基本單位,是程序的實體。
  • 線程,是操作系統(tǒng)能夠進行運算資源調(diào)配的最小單位,它包含在進程中,

區(qū)別

  • 進程是線程的容器,是資源分配的最小單位,一個進程可以開啟多個線程
  • 線程是系統(tǒng)分配處理器資源的最小單位,進程之內(nèi)獨立執(zhí)行的一個單元流程,
  • 進程一般由線程、內(nèi)存、文件/網(wǎng)絡(luò)句柄組成;線程一般由棧、PC(程序計數(shù)器)、TLS(線程本地存儲)組成
  • 多進程就是多任務(wù);多線程就是一個任務(wù)內(nèi)多個順序流在執(zhí)行
  • 系統(tǒng)開銷,進程在創(chuàng)建和銷毀的時候有系統(tǒng)分配和回收資源,開銷明顯大于線程的創(chuàng)建和回收

進程間的通信方式

  • 共享內(nèi)存
  • 管道和有名管道
  • 消息隊列
  • 信號 是在軟件層次上對中斷機制的一種模擬
  • 信號量 主要作為進程之間及同一種進程的不同線程之間得同步和互斥手段
  • 套接字 這是一種更為一般得進程間通信機制,它可用于網(wǎng)絡(luò)中不同機器之間的進程間通信,應(yīng)用非常廣泛

進程和線程的關(guān)系

  • 一個線程只屬于一個進程,而一個進程可以有很多個線程
  • 資源分配給進程,而同一個進程的多個線程貢獻(xiàn)這些資源
  • 處理器資源調(diào)取分配給線程,所以真正在處理器上執(zhí)行的是線程
  • 線程在執(zhí)行過程中,需要協(xié)作同步,多個線程一起把任務(wù)做完。而進程是大家干相同類似的活。

多線程的優(yōu)缺點

  • 優(yōu)點:合理調(diào)度處理器資源,提升CPU利用率,提高處理速度
  • 缺點:過多的線程,導(dǎo)致CPU的頻繁切換,會加重負(fù)擔(dān)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容