0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

進(jìn)程和線程的區(qū)別以及優(yōu)缺點(diǎn)

麥辣雞腿堡 ? 來源:嵌入式Linux系統(tǒng)開發(fā) ? 作者:嵌入式Linux系統(tǒng)開 ? 2023-07-21 11:02 ? 次閱讀

進(jìn)程與線程

1、什么是進(jìn)程、線程,有什么區(qū)別?

進(jìn)程是資源(CPU、內(nèi)存等)分配的基本單位,線程是 CPU 調(diào)度和分配的基本單位(程序執(zhí)行的最小單位)。如果 CPU 是單核,同一時(shí)間只有一個(gè)進(jìn)程在執(zhí)行,多核 CPU 可以同一時(shí)間點(diǎn)有多個(gè)進(jìn)程在執(zhí)行。

2、多進(jìn)程、多線程的優(yōu)缺點(diǎn)

一個(gè)進(jìn)程由進(jìn)程控制塊、數(shù)據(jù)段、代碼段組成,進(jìn)程本身不可以運(yùn)行程序,而是像一個(gè)容器一樣,先創(chuàng)建出一個(gè)主線程,分配給主線程一定的系統(tǒng)資源,這時(shí)候就可以在主線程開始實(shí)現(xiàn)各種功能。

當(dāng)我們需要實(shí)現(xiàn)更復(fù)雜的功能時(shí),可以在主線程里創(chuàng)建多個(gè)子線程,多個(gè)線程在同一個(gè)進(jìn)程里,利用這個(gè)進(jìn)程所擁有的系統(tǒng)資源合作完成某些功能。

優(yōu)缺點(diǎn):

一個(gè)進(jìn)程死了不影響其他進(jìn)程,一個(gè)線程崩潰很可能影響到它本身所處的整個(gè)進(jìn)程。

創(chuàng)建多進(jìn)程的系統(tǒng)花銷大于創(chuàng)建多線程。

多進(jìn)程通訊因?yàn)樾枰缭竭M(jìn)程邊界,不適合大量數(shù)據(jù)的傳送。多線程無需跨越進(jìn)程邊界,適合大量數(shù)據(jù)的傳送。

3、什么時(shí)候用進(jìn)程,什么時(shí)候用線程

創(chuàng)建和銷毀較頻繁使用線程,因?yàn)閯?chuàng)建進(jìn)程花銷大。

需要大量數(shù)據(jù)傳送使用線程,因?yàn)槎嗑€程切換速度快,不需要跨越進(jìn)程邊界。

安全穩(wěn)定選進(jìn)程;快速頻繁選線程;

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10769

    瀏覽量

    210428
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11161

    瀏覽量

    208467
  • 線程
    +關(guān)注

    關(guān)注

    0

    文章

    502

    瀏覽量

    19613
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    進(jìn)程線程區(qū)別

    線程是指進(jìn)程內(nèi)的一個(gè)執(zhí)行單元,也是進(jìn)程內(nèi)的可調(diào)度實(shí)體.與進(jìn)程區(qū)別:(1)地址空間:進(jìn)程內(nèi)的一個(gè)
    發(fā)表于 12-12 09:28

    進(jìn)程線程區(qū)別

    `1、進(jìn)程線程區(qū)別和聯(lián)系進(jìn)程(process)和線程(thread)是操作系統(tǒng)的基本概念,但是它們比較抽象,不容易掌握。計(jì)算機(jī)的核心是C
    發(fā)表于 11-30 14:06

    線程、進(jìn)程、程序的區(qū)別

    ,數(shù)據(jù)棧以及其它記錄其運(yùn)行軌跡的輔助數(shù)據(jù)。操作系統(tǒng)管理在其上運(yùn)行的所有進(jìn)程,并為這些進(jìn)程公平地分配時(shí)間。不過各個(gè)進(jìn)程有自己的內(nèi)存空間,數(shù)據(jù)棧等,所以只能使用
    發(fā)表于 03-23 13:09

    Oracle與MySQL優(yōu)缺點(diǎn)和使用區(qū)別

    關(guān)系型數(shù)據(jù)庫(kù)(Oracle與MySQL優(yōu)缺點(diǎn)、使用區(qū)別
    發(fā)表于 06-04 16:48

    Linux進(jìn)程線程區(qū)別是什么?

    Linux進(jìn)程線程區(qū)別是什么為什么要使用線程?線程操作的函數(shù)
    發(fā)表于 03-11 06:13

    嵌入式的進(jìn)程線程具有哪些優(yōu)缺點(diǎn)

    :①進(jìn)程擁有自己的PID和變量,獨(dú)立的內(nèi)存單元進(jìn)行調(diào)度,執(zhí)行(幾乎)獨(dú)立于父進(jìn)程。②新線程擁有自己獨(dú)立的棧(eg.局部變量),但與創(chuàng)建者共享全局變量、文件描述符、信號(hào)句柄、當(dāng)前目錄狀態(tài)。③獨(dú)立
    發(fā)表于 10-28 09:24

    進(jìn)程線程區(qū)別是什么

    有了提前批的失敗經(jīng)驗(yàn),接下來不斷的總結(jié)鞏固和修正錯(cuò)誤,這次發(fā)揮要比上次要好很多。一面(電話面)自我介紹進(jìn)程線程區(qū)別線程同步和通信鎖機(jī)制以及死鎖條件和預(yù)防TCP/IP協(xié)議的一些基礎(chǔ)知識(shí)
    發(fā)表于 12-23 07:28

    進(jìn)程有幾種狀態(tài)?

    文章目錄操作系統(tǒng)進(jìn)程線程什么是進(jìn)程?什么是線程?進(jìn)程線程有什么
    發(fā)表于 12-24 07:16

    線程進(jìn)程有哪些區(qū)別?

    線程進(jìn)程區(qū)別在于,子進(jìn)程和父進(jìn)程有不同的代碼和數(shù)據(jù)空間,而多個(gè)線程則共享數(shù)據(jù)空間,每個(gè)
    發(fā)表于 07-20 07:48 ?1932次閱讀
    <b class='flag-5'>線程</b>與<b class='flag-5'>進(jìn)程</b>有哪些<b class='flag-5'>區(qū)別</b>?

    線程好還是單線程好?單線程和多線程區(qū)別 優(yōu)缺點(diǎn)分析

    摘要:如今單線程與多線程已經(jīng)得到普遍運(yùn)用,那么到底多線程好還是單線程好呢?單線程和多線程
    發(fā)表于 12-08 09:33 ?8.1w次閱讀

    線程進(jìn)程區(qū)別和聯(lián)系,線程進(jìn)程通信方式

    摘要:進(jìn)程線程都是計(jì)算里的兩項(xiàng)執(zhí)行活動(dòng),各有特色和優(yōu)勢(shì)。下面就來介紹線程進(jìn)程之間的區(qū)別聯(lián)系以及
    發(fā)表于 12-08 14:12 ?1.2w次閱讀

    進(jìn)程線程分別是什么,它們的區(qū)別是什么

    程和線程區(qū)別是什么?有什么關(guān)系?相信大家對(duì)于進(jìn)程都很熟悉了吧,而線程相對(duì)于進(jìn)程而言,是一個(gè)更加接近于執(zhí)行體的概念,為了讓大家更好的了解
    發(fā)表于 03-24 17:26 ?9322次閱讀
    <b class='flag-5'>進(jìn)程</b>和<b class='flag-5'>線程</b>分別是什么,它們的<b class='flag-5'>區(qū)別</b>是什么

    進(jìn)程切換與線程切換有啥區(qū)別

    注意這個(gè)題目問的是進(jìn)程**切換**與線程**切換**的區(qū)別,不是進(jìn)程線程區(qū)別。當(dāng)然這里的**
    的頭像 發(fā)表于 02-24 14:16 ?531次閱讀

    程序中進(jìn)程線程區(qū)別

    什么是進(jìn)程 1、進(jìn)程線程區(qū)別 進(jìn)程是指正在運(yùn)行的程序,它擁有獨(dú)立的內(nèi)存空間和系統(tǒng)資源,不同進(jìn)程
    的頭像 發(fā)表于 06-22 11:39 ?609次閱讀
    程序中<b class='flag-5'>進(jìn)程</b>和<b class='flag-5'>線程</b>的<b class='flag-5'>區(qū)別</b>

    mcu線程進(jìn)程區(qū)別是什么

    MCU線程進(jìn)程是嵌入式系統(tǒng)中常見的并行執(zhí)行的概念,它們之間有許多區(qū)別,包括線程進(jìn)程的定義、資源管理、通信機(jī)制、執(zhí)行方式等等。下面將詳細(xì)介
    的頭像 發(fā)表于 01-04 10:45 ?626次閱讀