• 正文
    • Part 01●??什么是進程??●
    • Part 02●??什么是線程??●
    • Part 03●? 什么是協(xié)程??
  • 推薦器件
  • 相關推薦
申請入駐 產業(yè)圖譜

五分鐘技術趣談 | 計算機基礎概念之進程、線程和協(xié)程

2023/12/16
1847
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

作者:匡鵬,單位:中國移動智慧家庭運營中心

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

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

Part 01●??什么是進程??

進程是操作系統(tǒng)結構的基礎,是一次程序的執(zhí)行;是一個程序及其數據在處理機上順序執(zhí)行時所發(fā)生的活動,是程序在一個數據集合上運行的過程,它是系統(tǒng)進行資源分配和調度的獨立單元。

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

簡單來講,進程就是服務端應用程序的一個個啟動實例。一個word是一個進程,一個吃雞在后臺也是一個進程。進程理論上擁有獨立代碼和打開的文件資源、數據資源和內存空間。

進程主要由三部分組成:

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

2、數據段:進程運行中的各種數據。

3、程序段:程序代碼。

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

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

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

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

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

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

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

推薦器件

更多器件
器件型號 數量 器件廠商 器件描述 數據手冊 ECAD模型 風險等級 參考價格 更多信息
KSZ8081MNXCA-TR 1 Microchip Technology Inc DATACOM, ETHERNET TRANSCEIVER
$1.36 查看
TJA1021T/10/C,118 1 NXP Semiconductors TJA1021 - LIN 2.1/SAE J2602 transceiver SOIC 8-Pin

ECAD模型

下載ECAD模型
$1.44 查看
KSZ8081RNDIA-TR 1 Microchip Technology Inc IC TXRX ETHERNET 24QFN

ECAD模型

下載ECAD模型
$1.58 查看
中國移動

中國移動

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

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

查看更多

相關推薦

登錄即可解鎖
  • 海量技術文章
  • 設計資源下載
  • 產業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄

移動Labs是中國移動的社交化新媒體平臺,是面向外部行業(yè)及產業(yè)鏈合作伙伴的信息發(fā)布、業(yè)務發(fā)展和產業(yè)推進門戶。