国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 系統(tǒng) > Linux > 正文

linux中多進(jìn)程和多線(xiàn)程的區(qū)別有哪些

2024-08-27 23:55:11
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
  這篇“linux中多進(jìn)程和多線(xiàn)程的區(qū)別有哪些”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來(lái)看看這篇“linux中多進(jìn)程和多線(xiàn)程的區(qū)別有哪些”文章吧。
 
 
  區(qū)別:1、多進(jìn)程中數(shù)據(jù)共享復(fù)雜、同步簡(jiǎn)單,而多線(xiàn)程中數(shù)據(jù)共享簡(jiǎn)單、同步復(fù)雜;2、多進(jìn)程占用內(nèi)存多、切換復(fù)雜、速度慢、CPU利用率低,而多線(xiàn)程占用內(nèi)存少、切換簡(jiǎn)單、CPU利用率高;3、多進(jìn)程的編程簡(jiǎn)單、調(diào)試簡(jiǎn)單,而多線(xiàn)程的編程復(fù)雜、調(diào)試復(fù)雜。
 
  本教程操作環(huán)境:linux5.9.8系統(tǒng)、Dell G3電腦。
 
  linux中多進(jìn)程和多線(xiàn)程的區(qū)別
 
  進(jìn)程:運(yùn)行中(加載到內(nèi)存上)的程序。-->執(zhí)行過(guò)程稱(chēng)之為進(jìn)程。
 
  線(xiàn)程:線(xiàn)程是輕量級(jí)的進(jìn)程,是進(jìn)程中的一條執(zhí)行序列(一組有序指令),一個(gè)進(jìn)程至少有一條線(xiàn)程。
 
  main函數(shù)所代表的執(zhí)行序列稱(chēng)之為主線(xiàn)程。通過(guò)線(xiàn)程庫(kù)創(chuàng)建的線(xiàn)程稱(chēng)之為函數(shù)線(xiàn)程。
 
  對(duì)比維度 多進(jìn)程 多線(xiàn)程 總結(jié)
  數(shù)據(jù)共享,同步
  數(shù)據(jù)共享復(fù)雜,需要用IPC;
 
  數(shù)據(jù)是分開(kāi)的,同步簡(jiǎn)單
 
  因?yàn)楣蚕磉M(jìn)程數(shù)據(jù),共享數(shù)據(jù)簡(jiǎn)單,同時(shí)導(dǎo)致同步也復(fù)雜 各有優(yōu)勢(shì)
  內(nèi)存、CPU 占用內(nèi)存多,切換復(fù)雜,速度慢,CPU利用率低 占用內(nèi)存少,切換簡(jiǎn)單CPU利用率高 多線(xiàn)程優(yōu)勢(shì)
  創(chuàng)建銷(xiāo)毀、切換 創(chuàng)建銷(xiāo)毀,切換復(fù)雜,速度慢 創(chuàng)建銷(xiāo)毀,切換簡(jiǎn)單,速度很快 多線(xiàn)程優(yōu)勢(shì)
  編程調(diào)試 編程簡(jiǎn)單,調(diào)試簡(jiǎn)單 編程復(fù)雜,調(diào)試復(fù)雜 多進(jìn)程優(yōu)勢(shì)
  可靠性 進(jìn)程間不會(huì)互相影響 一個(gè)線(xiàn)程掛掉將導(dǎo)致整個(gè)進(jìn)程掛掉 多進(jìn)程優(yōu)勢(shì)
  分布式 適用于多核、多機(jī)分布式;如果一臺(tái)機(jī)器不夠,拓展到多臺(tái)機(jī)器比較簡(jiǎn)單 適用于多核分布式 多進(jìn)程優(yōu)勢(shì)
  多線(xiàn)程的優(yōu)點(diǎn):
 
  無(wú)需跨進(jìn)程邊界;
  程序邏輯和控制方式簡(jiǎn)單;
  所有線(xiàn)程可以直接共享內(nèi)存和變量;
  線(xiàn)程方式消耗的總資源比進(jìn)程少
  多進(jìn)程的優(yōu)點(diǎn) :
 
  每個(gè)進(jìn)程相互獨(dú)立,不影響主程序的穩(wěn)定性,子進(jìn)程崩潰沒(méi)關(guān)系;
  通過(guò)增加CPU就可以容易擴(kuò)充性能;
  可以盡量減少線(xiàn)程加鎖/解鎖的影響,極大提高性能;
  多線(xiàn)程的缺點(diǎn):
 
  每條線(xiàn)程與主程序共用地址空間,大小受限;
  線(xiàn)程之間的同步和加鎖比較麻煩;
  一個(gè)線(xiàn)程的崩潰可能影響到整個(gè)程序的穩(wěn)定性;
  到達(dá)一定的線(xiàn)程數(shù)后,即使在增加CPU也無(wú)法提高性能;
  多進(jìn)程的缺點(diǎn):
 
  邏輯控制復(fù)雜,需要和主程序交互;
  需要跨進(jìn)程邊界,如果有大數(shù)據(jù)傳輸,不適合;
  多進(jìn)程調(diào)度開(kāi)銷(xiāo)比較大
  應(yīng)用情況如下:
  1)需要頻繁創(chuàng)建銷(xiāo)毀的用線(xiàn)程
 
  這種原則最常見(jiàn)的就是Web服務(wù)器了,來(lái)一個(gè)連接建立一個(gè)線(xiàn)程,斷了就銷(xiāo)毀線(xiàn)程。如果用進(jìn)程,創(chuàng)建銷(xiāo)毀的代價(jià)是很難承受的。
 
  2)需要進(jìn)行大量計(jì)算的優(yōu)先用線(xiàn)程
 
  所謂大量計(jì)算就是消耗很多CPU,切換頻繁,這種情況下線(xiàn)程是最合適的。
 
  這種原則最常用的就是圖像處理,算法處理。
 
  3)強(qiáng)相關(guān)的處理用線(xiàn)程,弱相關(guān)的處理用進(jìn)程
 
  什么叫強(qiáng)相關(guān)、弱相關(guān)?理論上很難定義,舉一個(gè)例子加以解釋。
 
  一般的Server需要完成如下任務(wù):消息收發(fā)、消息處理。“消息收發(fā)”、“消息處理”就是弱相關(guān)的處理,而“消息處理”里面又分為“消息解碼”、“業(yè)務(wù)處理”,這兩個(gè)業(yè)務(wù)相對(duì)來(lái)說(shuō)就強(qiáng)很多。因此“消息收發(fā)”、“消息處理”可以分進(jìn)程設(shè)計(jì),“消息解碼”、“業(yè)務(wù)處理”可以分線(xiàn)程設(shè)計(jì)。
 
  4)可能擴(kuò)展到多機(jī)分布的用進(jìn)程,多核分布的用線(xiàn)程(具體原因請(qǐng)看上表)
 
  消耗資源:
 
  從內(nèi)核的觀點(diǎn)看,進(jìn)程的目的就是擔(dān)任分配系統(tǒng)資源(CPU時(shí)間、內(nèi)存等)的基本單位。線(xiàn)程是進(jìn)程的一條執(zhí)行流,是CPU調(diào)度和分派的基本單位,它是比進(jìn)程更小的能獨(dú)立運(yùn)行的基本單位。
 
  線(xiàn)程,他們之間使用相同的地址空間,共享大部分?jǐn)?shù)據(jù),啟動(dòng)一個(gè)線(xiàn)程所花費(fèi)的空間遠(yuǎn)遠(yuǎn)小于啟動(dòng)一個(gè)進(jìn)程所花費(fèi)的空間,而且線(xiàn)程間彼此切換所需要的時(shí)間也遠(yuǎn)遠(yuǎn)小于進(jìn)程間切換所用的時(shí)間。
 
  通訊方式:
 
  進(jìn)程間傳遞數(shù)據(jù)只能通過(guò)通訊的方式,既費(fèi)時(shí)又不方便。線(xiàn)程時(shí)間數(shù)據(jù)大部分共享,快捷方便,但是數(shù)據(jù)同步需要鎖。
 
  線(xiàn)程自身優(yōu)勢(shì):
 
  提高應(yīng)用程序相應(yīng);使用CPU系統(tǒng)更加有效;操作系統(tǒng)會(huì)保證當(dāng)線(xiàn)程數(shù)目不大于CPU數(shù)目時(shí)候,不同的線(xiàn)程運(yùn)行在不同的CPU上;改善程序結(jié)構(gòu),一個(gè)即長(zhǎng)又復(fù)雜的進(jìn)程可以考慮分為多個(gè)線(xiàn)程,成為幾個(gè)獨(dú)立或者半獨(dú)立的部分,這樣的程序會(huì)易于理解和修改。

(編輯:武林網(wǎng))

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 馆陶县| 滦南县| 施甸县| 玉树县| 邢台市| 沾化县| 滕州市| 新昌县| 庄浪县| 满洲里市| 扶余县| 潼南县| 旬邑县| 大姚县| 新竹市| 化隆| 墨竹工卡县| 大方县| 邵武市| 彰化市| 长宁区| 皋兰县| 乌兰浩特市| 鸡泽县| 伊春市| 方城县| 南部县| 融水| 焦作市| 五原县| 尚义县| 丰城市| 六枝特区| 车致| 彭水| 呼玛县| 开远市| 江山市| 上饶县| 阿拉善右旗| 沾益县|