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)程和線程的關(guān)系與區(qū)別是什么

Dbwd_Imgtec ? 來源:未知 ? 作者:胡薇 ? 2018-04-04 09:33 ? 次閱讀

1定義

進(jìn)程是具有一定獨(dú)立功能的程序關(guān)于某個(gè)數(shù)據(jù)集合上的一次運(yùn)行活動(dòng),進(jìn)程是系統(tǒng)進(jìn)行資源分配和調(diào)度的一個(gè)獨(dú)立單位。

線程是進(jìn)程的一個(gè)實(shí)體,是CPU調(diào)度和分派的基本單位,它是比進(jìn)程更小的能獨(dú)立運(yùn)行的基本單位。線程自己基本上不擁有系統(tǒng)資源,只擁有一點(diǎn)在運(yùn)行中必不可少的資源(如程序計(jì)數(shù)器,一組寄存器和棧),但是它可與同屬一個(gè)進(jìn)程的其他的線程共享進(jìn)程所擁有的全部資源。

2關(guān)系

一個(gè)線程可以創(chuàng)建和撤銷另一個(gè)線程;同一個(gè)進(jìn)程中的多個(gè)線程之間可以并發(fā)執(zhí)行。

相對(duì)進(jìn)程而言,線程是一個(gè)更加接近于執(zhí)行體的概念,它可以與同進(jìn)程中的其他線程共享數(shù)據(jù),但擁有自己的棧空間,擁有獨(dú)立的執(zhí)行序列。

3區(qū)別

進(jìn)程和線程的主要差別在于它們是不同的操作系統(tǒng)資源管理方式。進(jìn)程有獨(dú)立的地址空間,一個(gè)進(jìn)程崩潰后,在保護(hù)模式下不會(huì)對(duì)其它進(jìn)程產(chǎn)生影響,而線程只是一個(gè)進(jìn)程中的不同執(zhí)行路徑。線程有自己的堆棧和局部變量,但線程之間沒有單獨(dú)的地址空間,一個(gè)線程死掉就等于整個(gè)進(jìn)程死掉,所以多進(jìn)程的程序要比多線程的程序健壯,但在進(jìn)程切換時(shí),耗費(fèi)資源較大,效率要差一些。但對(duì)于一些要求同時(shí)進(jìn)行并且又要共享某些變量的并發(fā)操作,只能用線程,不能用進(jìn)程。

1) 簡(jiǎn)而言之,一個(gè)程序至少有一個(gè)進(jìn)程,一個(gè)進(jìn)程至少有一個(gè)線程。

2) 線程的劃分尺度小于進(jìn)程,使得多線程程序的并發(fā)性高。

3) 另外,進(jìn)程在執(zhí)行過程中擁有獨(dú)立的內(nèi)存單元,而多個(gè)線程共享內(nèi)存,從而極大地提高了程序的運(yùn)行效率。

4) 線程在執(zhí)行過程中與進(jìn)程還是有區(qū)別的。每個(gè)獨(dú)立的線程有一個(gè)程序運(yùn)行的入口、順序執(zhí)行序列和程序的出口。但是線程不能夠獨(dú)立執(zhí)行,必須依存在應(yīng)用程序中,由應(yīng)用程序提供多個(gè)線程執(zhí)行控制。

5) 從邏輯角度來看,多線程的意義在于一個(gè)應(yīng)用程序中,有多個(gè)執(zhí)行部分可以同時(shí)執(zhí)行。但操作系統(tǒng)并沒有將多個(gè)線程看做多個(gè)獨(dú)立的應(yīng)用,來實(shí)現(xiàn)進(jìn)程的調(diào)度和管理以及資源分配。這就是進(jìn)程和線程的重要區(qū)別。

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

線程和進(jìn)程在使用上各有優(yōu)缺點(diǎn):線程執(zhí)行開銷小,但不利于資源的管理和保護(hù);而進(jìn)程正相反。同時(shí),線程適合于在SMP機(jī)器上運(yùn)行,而進(jìn)程則可以跨機(jī)器遷移。

聲明:本文內(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)投訴
  • 線程
    +關(guān)注

    關(guān)注

    0

    文章

    504

    瀏覽量

    19684
  • 進(jìn)程
    +關(guān)注

    關(guān)注

    0

    文章

    203

    瀏覽量

    13961

原文標(biāo)題:進(jìn)程和線程有什么關(guān)系?它們的區(qū)別又是什么?

文章出處:【微信號(hào):Imgtec,微信公眾號(hào):Imagination Tech】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    隔離式ADC和普通ADC的區(qū)別是什么?

    隔離式ADC和普通ADC的區(qū)別是什么? 普通ADC+光耦能否等同于隔離式ADC
    發(fā)表于 12-27 06:09

    socket 多線程編程實(shí)現(xiàn)方法

    是指在同一個(gè)進(jìn)程中運(yùn)行多個(gè)線程,每個(gè)線程可以獨(dú)立執(zhí)行任務(wù)。線程共享進(jìn)程的資源,如內(nèi)存空間和文件句柄,但每個(gè)
    的頭像 發(fā)表于 11-12 14:16 ?358次閱讀

    一文搞懂Linux進(jìn)程的睡眠和喚醒

    。通過PPID,可以追蹤進(jìn)程的來源,并了解進(jìn)程之間的關(guān)系。 在PCB中記錄的進(jìn)程狀態(tài),不過是一些整數(shù),這個(gè)整數(shù)是多少就代表進(jìn)程此時(shí)處于什么
    發(fā)表于 11-04 15:15

    Python中多線程和多進(jìn)程區(qū)別

    Python作為一種高級(jí)編程語言,提供了多種并發(fā)編程的方式,其中多線程與多進(jìn)程是最常見的兩種方式之一。在本文中,我們將探討Python中多線程與多進(jìn)程的概念、
    的頭像 發(fā)表于 10-23 11:48 ?402次閱讀
    Python中多<b class='flag-5'>線程</b>和多<b class='flag-5'>進(jìn)程</b>的<b class='flag-5'>區(qū)別</b>

    CPU時(shí)鐘周期與主頻的關(guān)系區(qū)別

    CPU時(shí)鐘周期與主頻是計(jì)算機(jī)體系結(jié)構(gòu)中兩個(gè)緊密相連且至關(guān)重要的概念,它們之間既存在關(guān)系又有所區(qū)別。以下將詳細(xì)闡述CPU時(shí)鐘周期與主頻的關(guān)系區(qū)別。
    的頭像 發(fā)表于 09-26 15:46 ?1680次閱讀

    CPU線程和程序線程區(qū)別

    CPU的線程與程序的線程在概念、作用、實(shí)現(xiàn)方式以及性能影響等方面存在顯著差異。以下是對(duì)兩者區(qū)別的詳細(xì)闡述,旨在深入探討這一技術(shù)話題。
    的頭像 發(fā)表于 09-02 11:18 ?1023次閱讀

    摩爾線程與清程極智達(dá)建立戰(zhàn)略合作關(guān)系

    摩爾線程與清華系人工智能系統(tǒng)軟件公司清程極智科技有限公司(簡(jiǎn)稱:清程極智)近日共同宣布,雙方正式建立戰(zhàn)略合作關(guān)系。此次合作旨在加速國(guó)產(chǎn)大規(guī)模GPU智算集群的產(chǎn)業(yè)化進(jìn)程,推動(dòng)人工智能算力生態(tài)的快速發(fā)展,為大模型行業(yè)提供更強(qiáng)大、靈活
    的頭像 發(fā)表于 07-16 17:16 ?738次閱讀

    一句話讓你理解線程進(jìn)程

    今天給大家分享一下線程進(jìn)程,主要包含以下幾部分內(nèi)容:一句話說明線程進(jìn)程操作系統(tǒng)為什么需要進(jìn)程為什么要引入
    的頭像 發(fā)表于 06-04 08:04 ?1197次閱讀
    一句話讓你理解<b class='flag-5'>線程</b>和<b class='flag-5'>進(jìn)程</b>

    請(qǐng)問CK_IN和OSC_IN的區(qū)別是什么?

    都是接晶振的,為什么有兩個(gè)。區(qū)別是什么呢?
    發(fā)表于 04-11 08:07

    python中5種線程鎖盤點(diǎn)

    線程安全是多線程或多進(jìn)程編程中的一個(gè)概念,在擁有共享數(shù)據(jù)的多條線程并行執(zhí)行的程序中,線程安全的代碼會(huì)通過同步機(jī)制保證各個(gè)
    發(fā)表于 03-07 11:08 ?1594次閱讀
    python中5種<b class='flag-5'>線程</b>鎖盤點(diǎn)

    基于RTOS的應(yīng)用進(jìn)程中的典型線程

    RTOS中的關(guān)鍵因素是最小的中斷延遲和最小的線程切換延遲。RTOS的價(jià)值在于它的響應(yīng)速度或可預(yù)測(cè)性,而不是它在給定時(shí)間段內(nèi)可以執(zhí)行的工作量。
    發(fā)表于 03-05 09:32 ?608次閱讀
    基于RTOS的應(yīng)用<b class='flag-5'>進(jìn)程</b>中的典型<b class='flag-5'>線程</b>

    嵌入式系統(tǒng)中的線程、進(jìn)程與任務(wù)概念與區(qū)別

    每個(gè)線程與主程序共用地址空間,受限于2GB地址空間; 2)線程之間的同步和加鎖控制比較麻煩;一個(gè)線程的崩潰可能影響到整個(gè)程序的穩(wěn)定性
    發(fā)表于 03-04 15:03 ?1361次閱讀
    嵌入式系統(tǒng)中的<b class='flag-5'>線程</b>、<b class='flag-5'>進(jìn)程</b>與任務(wù)概念與<b class='flag-5'>區(qū)別</b>

    線程是什么的基本單位 進(jìn)程線程的本質(zhì)區(qū)別

    的代碼、數(shù)據(jù)以及用于執(zhí)行這些代碼的上下文信息。一個(gè)進(jìn)程可以由一個(gè)或多個(gè)線程組成,從而并發(fā)執(zhí)行多個(gè)任務(wù)。 本質(zhì)區(qū)別: 資源擁有方式:進(jìn)程是資源分配的基本單位,每個(gè)
    的頭像 發(fā)表于 02-02 16:30 ?935次閱讀

    線程進(jìn)程、多線程、多進(jìn)程和多任務(wù)之間有何關(guān)系?

    進(jìn)程是程序執(zhí)行時(shí)的一個(gè)實(shí)例,即它是程序已經(jīng)執(zhí)行到課中程度的數(shù)據(jù)結(jié)構(gòu)的匯集。從內(nèi)核的觀點(diǎn)看,進(jìn)程的目的就是擔(dān)當(dāng)分配系統(tǒng)資源(CPU時(shí)間、內(nèi)存等)的基本單位。
    的頭像 發(fā)表于 01-11 13:39 ?364次閱讀
    <b class='flag-5'>線程</b>、<b class='flag-5'>進(jìn)程</b>、多<b class='flag-5'>線程</b>、多<b class='flag-5'>進(jìn)程</b>和多任務(wù)之間有何<b class='flag-5'>關(guān)系</b>?

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

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