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

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

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

進(jìn)程和線程的概念及其區(qū)別

jf_TEuU2tls ? 來源:浩道Linux ? 2023-11-21 10:50 ? 次閱讀

前言

大家好,這里是浩道Linux,主要給大家分享Linux、Python、網(wǎng)絡(luò)通信、網(wǎng)絡(luò)安全等相關(guān)的IT知識平臺。

今天浩道跟大家分享一篇關(guān)于進(jìn)程與線程之間關(guān)聯(lián)的硬核干貨,看看大神如何通過通俗易懂的圖文,讓大家更加深刻理解進(jìn)程與線程的區(qū)別!

進(jìn)程和線程的概念

先了解一下操作系統(tǒng)的一些相關(guān)概念,大部分操作系統(tǒng)(如Windows、Linux)的任務(wù)調(diào)度是采用時間片輪轉(zhuǎn)的搶占式調(diào)度方式,也就是說一個任務(wù)執(zhí)行一小段時間后強(qiáng)制暫停去執(zhí)行下一個任務(wù),每個任務(wù)輪流執(zhí)行。任務(wù)執(zhí)行的一小段時間叫做時間片,任務(wù)正在執(zhí)行時的狀態(tài)叫運行狀態(tài),任務(wù)執(zhí)行一段時間后強(qiáng)制暫停去執(zhí)行下一個任務(wù),被暫停的任務(wù)就處于就緒狀態(tài)等待下一個屬于它的時間片的到來。這樣每個任務(wù)都能得到執(zhí)行,由于CPU的執(zhí)行效率非常高,時間片非常短,在各個任務(wù)之間快速地切換,給人的感覺就是多個任務(wù)在“同時進(jìn)行”,這也就是我們所說的并發(fā)(并發(fā)簡單來說多個任務(wù)同時執(zhí)行)。

wKgaomVcGyGATFEYAACMbPjoQq4101.png

進(jìn)程

計算機(jī)的核心是CPU,它承擔(dān)了所有的計算任務(wù);而操作系統(tǒng)是計算機(jī)的管理者,它負(fù)責(zé)任務(wù)的調(diào)度、資源的分配和管理,統(tǒng)領(lǐng)整個計算機(jī)硬件;應(yīng)用程序側(cè)是具有某種功能的程序,程序是運行于操作系統(tǒng)之上的。

進(jìn)程是一個具有一定獨立功能的程序在一個數(shù)據(jù)集上的一次動態(tài)執(zhí)行的過程,是操作系統(tǒng)進(jìn)行資源分配和調(diào)度的一個獨立單位,是應(yīng)用程序運行的載體。進(jìn)程是一種抽象的概念,從來沒有統(tǒng)一的標(biāo)準(zhǔn)定義。進(jìn)程一般由程序、數(shù)據(jù)集合和進(jìn)程控制塊三部分組成。程序用于描述進(jìn)程要完成的功能,是控制進(jìn)程執(zhí)行的指令集;數(shù)據(jù)集合是程序在執(zhí)行時所需要的數(shù)據(jù)和工作區(qū);程序控制塊(Program Control Block,簡稱PCB),包含進(jìn)程的描述信息和控制信息,是進(jìn)程存在的唯一標(biāo)志。

進(jìn)程具有的特征:

?動態(tài)性:進(jìn)程是程序的一次執(zhí)行過程,是臨時的,有生命期的,是動態(tài)產(chǎn)生,動態(tài)消亡的;?并發(fā)性:任何進(jìn)程都可以同其他進(jìn)程一起并發(fā)執(zhí)行;?獨立性:進(jìn)程是系統(tǒng)進(jìn)行資源分配和調(diào)度的一個獨立單位;?結(jié)構(gòu)性:進(jìn)程由程序、數(shù)據(jù)和進(jìn)程控制塊三部分組成。

進(jìn)程的生命周期

在早期只有進(jìn)程的操作系統(tǒng)中,進(jìn)程有五種狀態(tài),創(chuàng)建、就緒、運行、阻塞(等待)、退出。

wKgaomVcGyGAKajjAADM-Lv9Qaw853.png

?創(chuàng)建:進(jìn)程正在創(chuàng)建,還不能運行。操作系統(tǒng)在創(chuàng)建進(jìn)程時要進(jìn)行的工作包括分配和建立進(jìn)程控制塊表項、建立資源表格并分配資源、加載程序并建立地址空間;?就緒:時間片已用完,此線程被強(qiáng)制暫停,等待下一個屬于他的時間片到來;?運行:此線程正在執(zhí)行,正在占用時間片;?阻塞:也叫等待狀態(tài),等待某一事件(如IO或另一個線程)執(zhí)行完;?退出:進(jìn)程已結(jié)束,所以也稱結(jié)束狀態(tài),釋放操作系統(tǒng)分配的資源。

線程

在早期的操作系統(tǒng)中并沒有線程的概念,進(jìn)程是能擁有資源和獨立運行的最小單位,也是程序執(zhí)行的最小單位。任務(wù)調(diào)度采用的是時間片輪轉(zhuǎn)的搶占式調(diào)度方式,而進(jìn)程是任務(wù)調(diào)度的最小單位,每個進(jìn)程有各自獨立的一塊內(nèi)存,使得各個進(jìn)程之間內(nèi)存地址相互隔離。

后來,隨著計算機(jī)的發(fā)展,對CPU的要求越來越高,進(jìn)程之間的切換開銷較大,已經(jīng)無法滿足越來越復(fù)雜的程序的要求了。于是就發(fā)明了線程,線程是程序執(zhí)行中一個單一的順序控制流程,是程序執(zhí)行流的最小單元,是處理器調(diào)度和分派的基本單位。一個進(jìn)程可以有一個或多個線程,各個線程之間共享程序的內(nèi)存空間。

一個標(biāo)準(zhǔn)的線程由線程ID、當(dāng)前指令指針(PC)、寄存器和堆棧組成。而進(jìn)程由內(nèi)存空間(代碼、數(shù)據(jù)、進(jìn)程空間、打開的文件)和一個或多個線程組成。

線程的生命周期

當(dāng)線程的數(shù)量小于處理器的數(shù)量時,線程的并發(fā)是真正的并發(fā),不同的線程運行在不同的處理器上。但當(dāng)線程的數(shù)量大于處理器的數(shù)量時,線程的并發(fā)會受到一些阻礙,此時并不是真正的并發(fā),因為此時至少有一個處理器會運行多個線程。在單個處理器運行多個線程時,并發(fā)是一種模擬出來的狀態(tài)。操作系統(tǒng)采用時間片輪轉(zhuǎn)的方式輪流執(zhí)行每一個線程?,F(xiàn)在,幾乎所有的現(xiàn)代操作系統(tǒng)采用的都是時間片輪轉(zhuǎn)的搶占式調(diào)度方式,如我們熟悉的Unix、linux、Windows及Mac OS X等流行的操作系統(tǒng)。

wKgZomVcGyGAelzCAAC5qC-XxCI706.png

?創(chuàng)建:一個新的線程被創(chuàng)建,等待該線程被調(diào)用執(zhí)行;?就緒:時間片已用完,此線程被強(qiáng)制暫停,等待下一個屬于他的時間片到來;?運行:此線程正在執(zhí)行,正在占用時間片;?阻塞:也叫等待狀態(tài),等待某一事件(如IO或另一個線程)執(zhí)行完;?退出:一個線程完成任務(wù)或者其他終止條件發(fā)生,該線程終止進(jìn)入退出狀態(tài),退出狀態(tài)釋放該線程所分配的資源。

線程優(yōu)先級

操作系統(tǒng)(如Windows、Linux、Mac OS X)的任務(wù)調(diào)度除了具有前面提到的時間片輪轉(zhuǎn)的特點外,還有優(yōu)先級調(diào)度(Priority Schedule)的特點。優(yōu)先級調(diào)度決定了線程按照什么順序輪流執(zhí)行,在具有優(yōu)先級調(diào)度的系統(tǒng)中,線程擁有各自的線程優(yōu)先級(Thread Priority)。具有高優(yōu)先級的線程會更早地執(zhí)行,而低優(yōu)先級的線程通常要等沒有更高優(yōu)先級的可執(zhí)行線程時才會被執(zhí)行。

線程的優(yōu)先級可以由用戶手動設(shè)置,此外系統(tǒng)也會根據(jù)不同情形調(diào)整優(yōu)先級。通常情況下,頻繁地進(jìn)入等待狀態(tài)(進(jìn)入等待狀態(tài)會放棄之前仍可占用的時間份額)的線程(如IO線程),比頻繁進(jìn)行大量計算以至于每次都把所有時間片全部用盡的線程更受操作系統(tǒng)的歡迎。因為頻繁進(jìn)入等待的線程只會占用很少的時間,這樣操作系統(tǒng)可以處理更多的任務(wù)。我們把頻繁等待的線程稱之為IO密集型線程(IO Bound Thread),而把很少等待的線程稱之為CPU密集型線程(CPU Bound Thread)。IO密集型線程總是比CPU密集型線程更容易得到優(yōu)先級的提升。

線程餓死在優(yōu)先級調(diào)度下,容易出現(xiàn)一種線程餓死的現(xiàn)象。一個線程餓死是說它的優(yōu)先級較低,在它執(zhí)行之前總是有比它優(yōu)先級更高的線程等待執(zhí)行,因此這個低優(yōu)先級的線程始終得不到執(zhí)行。當(dāng)CPU密集型的線程優(yōu)先級較高時,其它低優(yōu)先級的線程就很可能出現(xiàn)餓死的情況;當(dāng)IO密集型線程優(yōu)先級較高時,其它線程相對不容易造成餓死的,因為IO線程有大量的等待時間。為了避免線程餓死,調(diào)度系統(tǒng)通常會逐步提升那些等待了很久而得不到執(zhí)行的線程的優(yōu)先級。這樣,一個線程只要它等待了足夠長的時間,其優(yōu)先級總會被提升到可以讓它執(zhí)行的程度,也就是說這種情況下線程始終會得到執(zhí)行,只是時間的問題。

在優(yōu)先級調(diào)度環(huán)境下,線程優(yōu)先級的改變有三種方式:

1.用戶指定優(yōu)先級;2.根據(jù)進(jìn)入等待狀態(tài)的頻繁程度提升或降低優(yōu)先級(由操作系統(tǒng)完成);3.長時間得不到執(zhí)行而被提升優(yōu)先級。

多線程與多核上面提到的時間片輪轉(zhuǎn)的調(diào)度方式說一個任務(wù)執(zhí)行一小段時間后強(qiáng)制暫停去執(zhí)行下一個任務(wù),每個任務(wù)輪流執(zhí)行。很多操作系統(tǒng)的書都說“同一時間點只有一個任務(wù)在執(zhí)行”。其實“同一時間點只有一個任務(wù)在執(zhí)行”這句話是不準(zhǔn)確的,至少它是不全面的。我們分析一下多核的情況。

這是我的電腦的CPU情況圖:

wKgaomVcGyGAVuCeAABevAaJaQM915.png

wKgaomVcGyGAFaGwAAAKZ0Hv6TE008.png

多核(心)處理器是指在一個處理器上集成多個運算核心從而提高計算能力,也就是有多個真正并行計算的處理核心,每一個處理核心對應(yīng)一個內(nèi)核線程。內(nèi)核線程(Kernel Thread, KLT)就是直接由操作系統(tǒng)內(nèi)核支持的線程,這種線程由內(nèi)核來完成線程切換,內(nèi)核通過操作調(diào)度器對線程進(jìn)行調(diào)度,并負(fù)責(zé)將線程的任務(wù)映射到各個處理器上。一般一個處理核心對應(yīng)一個內(nèi)核線程,比如單核處理器對應(yīng)一個內(nèi)核線程,雙核處理器對應(yīng)兩個內(nèi)核線程,四核處理器對應(yīng)四個內(nèi)核線程。

現(xiàn)在的電腦一般是雙核四線程、四核八線程,是采用超線程技術(shù)將一個物理處理核心模擬成兩個邏輯處理核心,對應(yīng)兩個內(nèi)核線程,所以在操作系統(tǒng)中看到的CPU數(shù)量是實際物理CPU數(shù)量的兩倍。但是我的如上圖是四核四線程,似乎沒有用這個超線程技術(shù)。

超線程技術(shù)就是利用特殊的硬件指令,把一個物理芯片模擬成兩個邏輯處理核心,讓單個處理器都能使用線程級并行計算,進(jìn)而兼容多線程操作系統(tǒng)和軟件,減少了CPU的閑置時間,提高的CPU的運行效率。這種超線程技術(shù)(如雙核四線程)由處理器硬件的決定,同時也需要操作系統(tǒng)的支持才能在計算機(jī)中表現(xiàn)出來。

程序一般不會直接去使用內(nèi)核線程,而是去使用內(nèi)核線程的一種高級接口——輕量級進(jìn)程(Light Weight Process,LWP),輕量級進(jìn)程就是我們通常意義上所講的線程(我們在這稱它為用戶線程),由于每個輕量級進(jìn)程都由一個內(nèi)核線程支持,因此只有先支持內(nèi)核線程,才能有輕量級進(jìn)程。用戶線程與內(nèi)核線程的對應(yīng)關(guān)系有三種模型:一對一模型、多對一模型、多對多模型,在這以4個內(nèi)核線程、3個用戶線程為例對三種模型進(jìn)行說明。

一對一模型對于一對一模型來說,一個用戶線程就唯一地對應(yīng)一個內(nèi)核線程(反過來不一定成立,一個內(nèi)核線程不一定有對應(yīng)的用戶線程)。這樣,如果CPU沒有采用超線程技術(shù)(如四核四線程的計算機(jī),就如上圖展示的我使用的計算機(jī)),一個用戶線程就唯一地映射到一個物理CPU的線程,線程之間的并發(fā)是真正的并發(fā)。一對一模型使用戶線程具有與內(nèi)核線程一樣的優(yōu)點,一個線程因某種原因阻塞時其他線程的執(zhí)行不受影響;此處,一對一模型也可以讓多線程程序在多處理器的系統(tǒng)上有更好的表現(xiàn)。但一對一模型也有兩個缺點:

1.許多操作系統(tǒng)限制了內(nèi)核線程的數(shù)量,因此一對一模型會使用戶線程的數(shù)量受到限制;2.許多操作系統(tǒng)內(nèi)核線程調(diào)度時,上下文切換的開銷較大,導(dǎo)致用戶線程的執(zhí)行效率下降。

wKgZomVcGyGAHvZjAAB-psljA0M710.png

多對一模型

多對一模型將多個用戶線程映射到一個內(nèi)核線程上,線程之間的切換由用戶態(tài)的代碼來進(jìn)行,因此相對一對一模型,多對一模型的線程切換速度要快許多;此外,多對一模型對用戶線程的數(shù)量幾乎無限制。但多對一模型也有兩個缺點:

1.如果其中一個用戶線程阻塞,那么其它所有線程都將無法執(zhí)行,因為此時內(nèi)核線程也隨之阻塞了;2.在多處理器系統(tǒng)上,處理器數(shù)量的增加對多對一模型的線程性能不會有明顯的增加,因為所有的用戶線程都映射到一個處理器上了。

wKgZomVcGyGAa2zTAACRaO7yTyM677.png

多對多模型多對多模型結(jié)合了一對一模型和多對一模型的優(yōu)點,將多個用戶線程映射到多個內(nèi)核線程上。多對多模型的優(yōu)點有:

1.一個用戶線程的阻塞不會導(dǎo)致所有線程的阻塞,因為此時還有別的內(nèi)核線程被調(diào)度來執(zhí)行;2.多對多模型對用戶線程的數(shù)量沒有限制;3.在多處理器的操作系統(tǒng)中,多對多模型的線程也能得到一定的性能提升,但提升的幅度不如一對一模型的高。

wKgZomVcGyGAEnZ1AACqkue_Fps495.png

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

線程是程序執(zhí)行的最小單位,而進(jìn)程是操作系統(tǒng)分配資源的最小單位;

一個進(jìn)程由一個或多個線程組成,線程是一個進(jìn)程中代碼的不同執(zhí)行路線;

進(jìn)程之間相互獨立,但同一進(jìn)程下的各個線程之間共享程序的內(nèi)存空間(包括代碼段、數(shù)據(jù)集、堆等)及一些進(jìn)程級的資源(如打開文件和信號),某進(jìn)程內(nèi)的線程在其它進(jìn)程不可見;

調(diào)度和切換:線程上下文切換比進(jìn)程上下文切換要快得多。

wKgaomVcGyGAAkpCAAEFTEAwSsk932.png

wKgZomVcGyGAJk-SAADIPNk4oEo183.png

總之,線程和進(jìn)程都是一種抽象的概念,線程是一種比進(jìn)程更小的抽象,線程和進(jìn)程都可用于實現(xiàn)并發(fā)。

在早期的操作系統(tǒng)中并沒有線程的概念,進(jìn)程是能擁有資源和獨立運行的最小單位,也是程序執(zhí)行的最小單位。它相當(dāng)于一個進(jìn)程里只有一個線程,進(jìn)程本身就是線程。所以線程有時被稱為輕量級進(jìn)程(Lightweight Process,LWP)。

后來,隨著計算機(jī)的發(fā)展,對多個任務(wù)之間上下文切換的效率要求越來越高,就抽象出一個更小的概念——線程,一般一個進(jìn)程會有多個(也可是一個)線程。

wKgaomVcGyGAFW6PAACYC61TPD4001.png

漫話進(jìn)程和線程

1.計算機(jī)的核心是CPU,它承擔(dān)了所有的計算任務(wù)。它就像一座工廠,時刻在運行。

2.假定工廠的電力有限,一次只能供給一個車間使用。也就是說,一個車間開工的時候,其他車間都必須停工。背后的含義就是,單個CPU一次只能運行一個任務(wù)。

3.進(jìn)程就好比工廠的車間,它代表CPU所能處理的單個任務(wù)。任一時刻,CPU總是運行一個進(jìn)程,其他進(jìn)程處于非運行狀態(tài)。

4.一個車間里,可以有很多工人。他們協(xié)同完成一個任務(wù)。

5.線程就好比車間里的工人。一個進(jìn)程可以包括多個線程。

6.車間的空間是工人們共享的,比如許多房間是每個工人都可以進(jìn)出的。這象征一個進(jìn)程的內(nèi)存空間是共享的,每個線程都可以使用這些共享內(nèi)存。

7.可是,每間房間的大小不同,有些房間最多只能容納一個人,比如廁所。里面有人的時候,其他人就不能進(jìn)去了。這代表一個線程使用某些共享內(nèi)存時,其他線程必須等它結(jié)束,才能使用這一塊內(nèi)存。

8.一個防止他人進(jìn)入的簡單方法,就是門口加一把鎖。先到的人鎖上門,后到的人看到上鎖,就在門口排隊,等鎖打開再進(jìn)去。這就叫”互斥鎖”(Mutual exclusion,縮寫 Mutex),防止多個線程同時讀寫某一塊內(nèi)存區(qū)域。

9.還有些房間,可以同時容納n個人,比如廚房。也就是說,如果人數(shù)大于n,多出來的人只能在外面等著。這好比某些內(nèi)存區(qū)域,只能供給固定數(shù)目的線程使用。

10.這時的解決方法,就是在門口掛n把鑰匙。進(jìn)去的人就取一把鑰匙,出來時再把鑰匙掛回原處。后到的人發(fā)現(xiàn)鑰匙架空了,就知道必須在門口排隊等著了。這種做法叫做”信號量”(Semaphore),用來保證多個線程不會互相沖突。

不難看出,mutex是semaphore的一種特殊情況(n=1時)。也就是說,完全可以用后者替代前者。但是,因為mutex較為簡單,且效率高,所以在必須保證資源獨占的情況下,還是采用這種設(shè)計。

操作系統(tǒng)的設(shè)計,因此可以歸結(jié)為三點:

(1)以多進(jìn)程形式,允許多個任務(wù)同時運行;

(2)以多線程形式,允許單個任務(wù)分成不同的部分運行;

(3)提供協(xié)調(diào)機(jī)制,一方面防止進(jìn)程之間和線程之間產(chǎn)生沖突,另一方面允許進(jìn)程之間和線程之間共享資源。

審核編輯:湯梓紅

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

    關(guān)注

    87

    文章

    11123

    瀏覽量

    207892
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    6545

    瀏覽量

    122731
  • python
    +關(guān)注

    關(guān)注

    53

    文章

    4753

    瀏覽量

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

    關(guān)注

    0

    文章

    501

    瀏覽量

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

    關(guān)注

    0

    文章

    197

    瀏覽量

    13928

原文標(biāo)題:太強(qiáng)了!總算有大神把進(jìn)程與線程之間的關(guān)系講得透徹了~

文章出處:【微信號:浩道linux,微信公眾號:浩道linux】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

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

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

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

    `1、進(jìn)程線程區(qū)別和聯(lián)系進(jìn)程(process)和線程(thread)是操作系統(tǒng)的基本概念,但
    發(fā)表于 11-30 14:06

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

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

    進(jìn)程線程區(qū)別和聯(lián)系介紹

    發(fā)生了變化:它只是資源分配的單位,而不再是調(diào)度運行的單位 。在微內(nèi)核系統(tǒng)中,真正調(diào)度運行的基本單位是線程。因此,實現(xiàn)并發(fā)功能的單位是線程。 線程概念   
    發(fā)表于 07-04 00:18

    FPGA與CPLD的概念及其區(qū)別PDF

    FPGA與CPLD的概念及其區(qū)別
    發(fā)表于 08-15 15:46

    請問線程進(jìn)程概念有什么區(qū)別?

    不懂線程進(jìn)程概念,這些是為了維護(hù)系統(tǒng)不使程序跑飛?跟程序裸奔有什么優(yōu)勢嗎?
    發(fā)表于 08-16 04:35

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

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

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

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

    地和接地的概念及區(qū)別

    地和接地的概念及區(qū)別 1.地 (1)電氣地 大地是一個電阻非常低、電容量非常大的物體,擁有吸收無限電荷的
    發(fā)表于 12-31 11:09 ?3287次閱讀

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

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

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

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

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

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

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

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

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

    什么是進(jìn)程 1、進(jìn)程線程區(qū)別 進(jìn)程是指正在運行的程序,它擁有獨立的內(nèi)存空間和系統(tǒng)資源,不同進(jìn)程
    的頭像 發(fā)表于 06-22 11:39 ?528次閱讀
    程序中<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)程的定義、資
    的頭像 發(fā)表于 01-04 10:45 ?562次閱讀