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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

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

進程和線程的區(qū)別以及優(yōu)缺點

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

進程與線程

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

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

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

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

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

優(yōu)缺點:

一個進程死了不影響其他進程,一個線程崩潰很可能影響到它本身所處的整個進程。

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

多進程通訊因為需要跨越進程邊界,不適合大量數(shù)據(jù)的傳送。多線程無需跨越進程邊界,適合大量數(shù)據(jù)的傳送。

3、什么時候用進程,什么時候用線程

創(chuàng)建和銷毀較頻繁使用線程,因為創(chuàng)建進程花銷大。

需要大量數(shù)據(jù)傳送使用線程,因為多線程切換速度快,不需要跨越進程邊界。

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

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

    關(guān)注

    68

    文章

    10698

    瀏覽量

    209329
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11123

    瀏覽量

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

    關(guān)注

    0

    文章

    501

    瀏覽量

    19580
收藏 人收藏

    評論

    相關(guān)推薦

    進程線程區(qū)別

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

    進程線程區(qū)別

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

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

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

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

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

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

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

    嵌入式的進程線程具有哪些優(yōu)缺點

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    程序中進程線程區(qū)別

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

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

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