溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

進(jìn)程和線程怎么理解

發(fā)布時(shí)間:2022-01-13 15:15:42 來源:億速云 閱讀:164 作者:iii 欄目:大數(shù)據(jù)

這篇文章主要介紹“進(jìn)程和線程怎么理解”的相關(guān)知識(shí),小編通過實(shí)際案例向大家展示操作過程,操作方法簡(jiǎn)單快捷,實(shí)用性強(qiáng),希望這篇“進(jìn)程和線程怎么理解”文章能幫助大家解決問題。

單任務(wù)系統(tǒng)的情況

在這種情況下,所有的系統(tǒng)資源都交給程序使用,編程者只需要考慮處理的流程和邏輯即可。這里的資源包括:CPU時(shí)間,內(nèi)存(堆,棧),全局變量,硬件設(shè)備(顯示器,鍵盤,通訊接口,音頻設(shè)備)等。

多任務(wù)操作系統(tǒng)的情況

進(jìn)程

對(duì)于編程者來說,最理想的情況就是,根本不用意識(shí)自己是多任務(wù)操作系統(tǒng)環(huán)境中編寫程序。

也就是說,至少看起來所有的系統(tǒng)資源都交給程序使用,編程者只需要考慮處理的流程和邏輯即可。這里的資源包括:CPU時(shí)間, 內(nèi)存(堆,棧,全局變量),硬件設(shè)備(顯示器,鍵盤,通訊接口,音頻設(shè)備)等。

但問題是,物理內(nèi)存,設(shè)備只有一份,多個(gè)程序同時(shí)執(zhí)行時(shí)必然發(fā)生競(jìng)爭(zhēng)。這個(gè)問題當(dāng)然不用我們考慮,因?yàn)槎嗳蝿?wù)操作系統(tǒng)已經(jīng)解決了:

  1. 為每個(gè)程序提供一定的CPU時(shí)間,保證程序可以按照某種間隔被執(zhí)行。這種執(zhí)行是二進(jìn)制機(jī)器碼層面的。

  2. 為每個(gè)程序提供了獨(dú)立的,虛擬的內(nèi)存空間,實(shí)際的內(nèi)存操作會(huì)映射到實(shí)際的物理內(nèi)存上。

  3. 對(duì)于顯示部分,提供了窗口機(jī)制,將程序的輸出導(dǎo)向特定的窗口。同時(shí)系統(tǒng)將鍵盤,鼠標(biāo)的輸出導(dǎo)向當(dāng)前活動(dòng)的窗口。

  4. 有一些硬件,比如音頻輸入設(shè)備,串口等實(shí)在無法在程序之間共享。這樣的硬件就采用了獨(dú)占的方式,如果某個(gè)程序占用了某個(gè)設(shè)備,其他程序就不能使用。

這些都做到以后,可以說基本上實(shí)現(xiàn)了我們的理想:編程者不用意識(shí)自己實(shí)在為多任務(wù)操作提供編寫程序。每個(gè)任務(wù)作為單獨(dú)的程序來設(shè)計(jì)和實(shí)現(xiàn),任務(wù)之間的調(diào)度利用操作系統(tǒng)的功能來實(shí)現(xiàn)。

這樣的程序執(zhí)行過程就是進(jìn)程?;旧线M(jìn)程就相當(dāng)于多任務(wù)操作系統(tǒng)中的應(yīng)用程序。

進(jìn)程的好處是最大限度程序執(zhí)行過程保持之間的獨(dú)立性,使增加任務(wù)或者調(diào)整任務(wù)內(nèi)容變得簡(jiǎn)單。但同時(shí)也可以看到操作系統(tǒng)要為每個(gè)進(jìn)行分配資源,映射內(nèi)存操作,各種輸入輸出。所有這些都需要相當(dāng)?shù)南到y(tǒng)開銷。所以多任務(wù)操作系統(tǒng)內(nèi)部也是隨著硬件性能的提高而逐漸發(fā)展提來的。

線程


理解了進(jìn)程的優(yōu)缺點(diǎn)以后,在理解線程就容易了。很多時(shí)候在一個(gè)進(jìn)程內(nèi)部還是需要多任務(wù)處理,比如視頻時(shí)軟件在視頻解碼時(shí)還要接受用戶操作。對(duì)于這種情況下就需要在進(jìn)程內(nèi)部提供多任務(wù)處理機(jī)制:線程。

一個(gè)進(jìn)程中的線程之間CPU時(shí)間的分配和進(jìn)程類似,但是共同使用進(jìn)程的資源,操作系統(tǒng)不必為每個(gè)線程提供另外的映射機(jī)制,這樣做的結(jié)果:

  1. 多個(gè)線程公共一個(gè)資源時(shí),需要編程者利用操作系統(tǒng)提供提供的接口主動(dòng)的進(jìn)行訪問控制和同步。

  2. 由于用于共同的內(nèi)存空間,堆,棧等,所以不需要另外的地址映射等處理,可以實(shí)現(xiàn)比較快速的數(shù)據(jù)交換。

關(guān)于“進(jìn)程和線程怎么理解”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí),可以關(guān)注億速云行業(yè)資訊頻道,小編每天都會(huì)為大家更新不同的知識(shí)點(diǎn)。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI