<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

進程和線程的關系與區別是什么

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

1定義

進程是具有一定獨立功能的程序關于某個數據集合上的一次運行活動,進程是系統進行資源分配和調度的一個獨立單位。

線程是進程的一個實體,是CPU調度和分派的基本單位,它是比進程更小的能獨立運行的基本單位。線程自己基本上不擁有系統資源,只擁有一點在運行中必不可少的資源(如程序計數器,一組寄存器和棧),但是它可與同屬一個進程的其他的線程共享進程所擁有的全部資源。

2關系

一個線程可以創建和撤銷另一個線程;同一個進程中的多個線程之間可以并發執行。

相對進程而言,線程是一個更加接近于執行體的概念,它可以與同進程中的其他線程共享數據,但擁有自己的??臻g,擁有獨立的執行序列。

3區別

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

1) 簡而言之,一個程序至少有一個進程,一個進程至少有一個線程。

2) 線程的劃分尺度小于進程,使得多線程程序的并發性高。

3) 另外,進程在執行過程中擁有獨立的內存單元,而多個線程共享內存,從而極大地提高了程序的運行效率。

4) 線程在執行過程中與進程還是有區別的。每個獨立的線程有一個程序運行的入口、順序執行序列和程序的出口。但是線程不能夠獨立執行,必須依存在應用程序中,由應用程序提供多個線程執行控制。

5) 從邏輯角度來看,多線程的意義在于一個應用程序中,有多個執行部分可以同時執行。但操作系統并沒有將多個線程看做多個獨立的應用,來實現進程的調度和管理以及資源分配。這就是進程和線程的重要區別。

4優缺點

線程和進程在使用上各有優缺點:線程執行開銷小,但不利于資源的管理和保護;而進程正相反。同時,線程適合于在SMP機器上運行,而進程則可以跨機器遷移。

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

    關注

    0

    文章

    496

    瀏覽量

    19537
  • 進程
    +關注

    關注

    0

    文章

    196

    瀏覽量

    13905

原文標題:進程和線程有什么關系?它們的區別又是什么?

文章出處:【微信號:Imgtec,微信公眾號:Imagination Tech】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    一句話讓你理解線程進程

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

    線程是什么的基本單位 進程線程的本質區別

    的代碼、數據以及用于執行這些代碼的上下文信息。一個進程可以由一個或多個線程組成,從而并發執行多個任務。 本質區別: 資源擁有方式:進程是資源分配的基本單位,每個
    的頭像 發表于 02-02 16:30 ?425次閱讀

    線程、進程、多線程、多進程和多任務之間有何關系?

    進程是程序執行時的一個實例,即它是程序已經執行到課中程度的數據結構的匯集。從內核的觀點看,進程的目的就是擔當分配系統資源(CPU時間、內存等)的基本單位。
    的頭像 發表于 01-11 13:39 ?210次閱讀
    <b class='flag-5'>線程</b>、<b class='flag-5'>進程</b>、多<b class='flag-5'>線程</b>、多<b class='flag-5'>進程</b>和多任務之間有何<b class='flag-5'>關系</b>?

    mcu線程進程區別是什么

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

    進程線程的概念及其區別

    今天浩道跟大家分享一篇關于進程線程之間關聯的硬核干貨,看看大神如何通過通俗易懂的圖文,讓大家更加深刻理解進程線程區別!
    的頭像 發表于 11-21 10:50 ?626次閱讀
    <b class='flag-5'>進程</b>和<b class='flag-5'>線程</b>的概念及其<b class='flag-5'>區別</b>

    進程線程區別

    1.什么是進程?為什么要有進程? 進程有一個相當精簡的解釋:進程是對操作系統上正在運行程序的一個抽象。 這個概念確實挺抽象,仔細想想卻也挺精準。 我們平常使用計算機,都會在同一時間做許
    的頭像 發表于 11-11 16:46 ?548次閱讀
    <b class='flag-5'>進程</b>和<b class='flag-5'>線程</b>的<b class='flag-5'>區別</b>

    Linux系統上多線程和多進程的運行效率

    關于多進程和多線程,教科書上最經典的一句話是“進程是資源分配的最小單位,線程是CPU調度的最小單位”,這句話應付考試基本上夠了,但如果在工作中遇到類似的選擇問題,那就沒有這么簡單了,選
    的頭像 發表于 11-10 10:54 ?561次閱讀
    Linux系統上多<b class='flag-5'>線程</b>和多<b class='flag-5'>進程</b>的運行效率

    RTOS中的線程、進程和協程詳解

    看到有小伙伴在討論【RTOS任務屬于線程還是進程】的話題,這里就來分析一下OS中的線程、進程和協程的這幾個概念,同時一起看看RTOS中的任務到底屬于哪一種。
    的頭像 發表于 11-09 12:36 ?1124次閱讀
    RTOS中的<b class='flag-5'>線程</b>、<b class='flag-5'>進程</b>和協程詳解

    關于Python多進程和多線程詳解

    進程(process)和線程(thread)是操作系統的基本概念,但是它們比較抽象,不容易掌握。關于多進程和多線程,教科書上最經典的一句話是“進程
    的頭像 發表于 11-06 14:46 ?364次閱讀
    關于Python多<b class='flag-5'>進程</b>和多<b class='flag-5'>線程</b>詳解

    一個有許多線程進程,如何才能改變其中一個線程的工作目錄?

    一個有許多線程進程,我們如何才能改變其中一個線程的工作目錄,而不影響其他?
    發表于 10-17 09:01

    嵌入式進程線程區別

    需要進行大量計算的優先使用線程 所謂大量計算,當然就是要耗費很多CPU,切換頻繁了,這種情況下線程是最合適的。這種原則最常見的是圖像處理、算法處理。
    發表于 09-04 10:05 ?204次閱讀
    嵌入式<b class='flag-5'>進程</b>和<b class='flag-5'>線程</b>的<b class='flag-5'>區別</b>

    Linux如何證明線程共享進程的地址空間

    所有的書上都說,進程中的所有線程共享進程的地址空間,如上圖中的藍框都在一個進程中。那么該如何證明這個結論呢?
    發表于 08-25 16:22 ?369次閱讀
    Linux如何證明<b class='flag-5'>線程</b>共享<b class='flag-5'>進程</b>的地址空間

    Hbird-SDK、Nuclei-SDK、NucleiStudio這三者之間的關系區別是什么???

    請問 Hbird-SDK、Nuclei-SDK和NucleiStudio這三者之間的關系區別是什么???有沒有誰包含誰了?
    發表于 08-12 08:08

    進程線程區別以及優缺點

    進程線程 1、什么是進程、線程,有什么區別? 進程是資源(CPU、內存等)分配的基本單位,
    的頭像 發表于 07-21 11:02 ?958次閱讀

    程序中進程線程區別

    什么是進程 1、進程線程區別 進程是指正在運行的程序,它擁有獨立的內存空間和系統資源,不同進程
    的頭像 發表于 06-22 11:39 ?354次閱讀
    程序中<b class='flag-5'>進程</b>和<b class='flag-5'>線程</b>的<b class='flag-5'>區別</b>
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>