加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入
  • 正文
    • Part 01●??什么是進(jìn)程??●
    • Part 02●??什么是線程??●
    • Part 03●? 什么是協(xié)程??
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

五分鐘技術(shù)趣談 | 計(jì)算機(jī)基礎(chǔ)概念之進(jìn)程、線程和協(xié)程

2023/12/16
2409
閱讀需 5 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

作者:匡鵬,單位:中國移動(dòng)智慧家庭運(yùn)營(yíng)中心

互聯(lián)網(wǎng)技術(shù)的興起,讓更多的人接觸到了計(jì)算機(jī)編程。進(jìn)程、線程、協(xié)程等作為操作系統(tǒng)中最核心的概念及技術(shù)是每位服務(wù)器后端開發(fā)程序猿都繞不開的。那么什么是進(jìn)程、線程以及協(xié)程呢?它們又各自有哪些相同和區(qū)別呢?本文將會(huì)對(duì)這些問題做一個(gè)深入淺出的介紹。

數(shù)字化轉(zhuǎn)型時(shí)代,計(jì)算機(jī)編程技術(shù)越來越普及。高級(jí)編程語言的封裝使得編程變得簡(jiǎn)單,作為代碼執(zhí)行最重要的載體,什么是進(jìn)程、線程一級(jí)協(xié)程?本期Labs帶大家認(rèn)識(shí)下計(jì)算機(jī)基礎(chǔ)之編程技術(shù)的那些事兒~

Part 01●??什么是進(jìn)程??

進(jìn)程是操作系統(tǒng)結(jié)構(gòu)的基礎(chǔ),是一次程序的執(zhí)行;是一個(gè)程序及其數(shù)據(jù)在處理機(jī)上順序執(zhí)行時(shí)所發(fā)生的活動(dòng),是程序在一個(gè)數(shù)據(jù)集合上運(yùn)行的過程,它是系統(tǒng)進(jìn)行資源分配和調(diào)度的獨(dú)立單元。

初看這段文字回覺得十分抽象,難以理解。以Windows操作系統(tǒng)為例,打開任務(wù)管理器并切換到進(jìn)程頁,即可直觀感觸到進(jìn)程所代表的含義。

簡(jiǎn)單來講,進(jìn)程就是服務(wù)端應(yīng)用程序的一個(gè)個(gè)啟動(dòng)實(shí)例。一個(gè)word是一個(gè)進(jìn)程,一個(gè)吃雞在后臺(tái)也是一個(gè)進(jìn)程。進(jìn)程理論上擁有獨(dú)立代碼和打開的文件資源、數(shù)據(jù)資源和內(nèi)存空間。

進(jìn)程主要由三部分組成:

1、進(jìn)程控制塊PCB:進(jìn)程存在的唯一標(biāo)識(shí),時(shí)操作系統(tǒng)用來記錄和刻畫進(jìn)程狀態(tài)及環(huán)境信息的數(shù)據(jù)結(jié)構(gòu),也是操作系統(tǒng)掌握進(jìn)程的唯一資料結(jié)構(gòu)和管理進(jìn)程的主要依據(jù)。

2、數(shù)據(jù)段:進(jìn)程運(yùn)行中的各種數(shù)據(jù)。

3、程序段:程序代碼。

Part 02●??什么是線程??

線程可以理解成進(jìn)程的一個(gè)從屬,是應(yīng)用程序的執(zhí)行者,線程是在進(jìn)程中獨(dú)立運(yùn)行的子任務(wù)。一個(gè)進(jìn)程理論上由有個(gè)一個(gè)主線程和多個(gè)子線程組成。相同進(jìn)程的線程的內(nèi)存、文件、數(shù)據(jù)是共用的,但擁有獨(dú)立的??臻g。對(duì)于操作系統(tǒng)來講,線程是最小的執(zhí)行單元。比如使用聊天軟件QQ時(shí)我們能夠同時(shí)進(jìn)行聊天、發(fā)送文件以及視頻等,這每一項(xiàng)的功能背后都有對(duì)應(yīng)的線程在后臺(tái)默默地運(yùn)行。

線程的特征和進(jìn)程的差不多,線程還具備以下優(yōu)點(diǎn):1、一個(gè)進(jìn)程中可以同時(shí)存在多個(gè)線程,這些線程共享該集成的資源;線程間通信無需操作系統(tǒng)干預(yù),開銷更??;2、線程的并發(fā)比進(jìn)程的更小,系統(tǒng)并發(fā)性高。除了具備以上的優(yōu)點(diǎn)外,線程也存在缺點(diǎn):當(dāng)進(jìn)程中的一個(gè)線程崩潰時(shí),會(huì)導(dǎo)致所屬的進(jìn)程的所有線程崩潰。

程序執(zhí)行是在不同進(jìn)程和線程之間協(xié)作進(jìn)行的,操作系統(tǒng)在多個(gè)進(jìn)程和線程同時(shí)執(zhí)行并進(jìn)行切換實(shí)現(xiàn)應(yīng)用程序的并行執(zhí)行,對(duì)操作系統(tǒng)而言,這是極大的性能開銷,那不能不通過操作系統(tǒng)層面來實(shí)現(xiàn)高并發(fā)的程序運(yùn)行呢?協(xié)程的概念也就因此產(chǎn)生了。

Part 03●? 什么是協(xié)程??

協(xié)程并不像進(jìn)程和線程那樣廣為人知,但其實(shí)協(xié)程的概念比線程出現(xiàn)得更早,直到近來的Golang、Python等編程語言從語言層面提供了對(duì)協(xié)程更好的支持,尤其是Goroutine為代表的Go協(xié)程實(shí)現(xiàn),才讓程序員對(duì)協(xié)程有了更多的了解。

協(xié)程是一種比線程更加輕量級(jí)的程序運(yùn)行的存在。正如一個(gè)進(jìn)程可以擁有多個(gè)線程一樣,一個(gè)線程也可以擁有多個(gè)協(xié)程。協(xié)程不被操作系統(tǒng)內(nèi)核所管理,完全在用戶態(tài)執(zhí)行,可以完全由用戶程序進(jìn)行控制。正因?yàn)槿绱?,使用協(xié)程不需要操作系統(tǒng)進(jìn)行資源消耗,使執(zhí)行的性能得到了極大的提升。

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
CC430F5137IRGZ 1 Texas Instruments 16-Bit ultra-low-power CC430 Sub 1 GHz wireless MCU with 12-Bit ADC, 32kB Flash and 4kB RAM 48-VQFN -40 to 85

ECAD模型

下載ECAD模型
$7.53 查看
KSZ8081MNXCA-TR 1 Microchip Technology Inc DATACOM, ETHERNET TRANSCEIVER
$1.36 查看
KSZ8463MLI 1 Microchip Technology Inc DATACOM, MANCHESTER ENCODER
$6.84 查看
中國移動(dòng)

中國移動(dòng)

中國移動(dòng)有限公司(「本公司」,包括子公司合稱為「本集團(tuán)」)于1997年9月3日在香港成立,本集團(tuán)在中國內(nèi)地所有三十一個(gè)省、自治區(qū)、直轄市以及香港特別行政區(qū)提供通信和信息服務(wù),業(yè)務(wù)主要涵蓋個(gè)人、家庭、政企和新興市場(chǎng)的語音、數(shù)據(jù)、寬帶、專線、IDC、云計(jì)算、物聯(lián)網(wǎng)等,是中國內(nèi)地最大的通信和信息服務(wù)供應(yīng)商,亦是全球網(wǎng)絡(luò)和客戶規(guī)模最大、盈利能力領(lǐng)先、市值排名位居前列的世界級(jí)通信和信息運(yùn)營(yíng)商。

中國移動(dòng)有限公司(「本公司」,包括子公司合稱為「本集團(tuán)」)于1997年9月3日在香港成立,本集團(tuán)在中國內(nèi)地所有三十一個(gè)省、自治區(qū)、直轄市以及香港特別行政區(qū)提供通信和信息服務(wù),業(yè)務(wù)主要涵蓋個(gè)人、家庭、政企和新興市場(chǎng)的語音、數(shù)據(jù)、寬帶、專線、IDC、云計(jì)算、物聯(lián)網(wǎng)等,是中國內(nèi)地最大的通信和信息服務(wù)供應(yīng)商,亦是全球網(wǎng)絡(luò)和客戶規(guī)模最大、盈利能力領(lǐng)先、市值排名位居前列的世界級(jí)通信和信息運(yùn)營(yíng)商。收起

查看更多

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

移動(dòng)Labs是中國移動(dòng)的社交化新媒體平臺(tái),是面向外部行業(yè)及產(chǎn)業(yè)鏈合作伙伴的信息發(fā)布、業(yè)務(wù)發(fā)展和產(chǎn)業(yè)推進(jìn)門戶。