溫馨提示×

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

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

操作系統(tǒng)中什么是進(jìn)程、線程、協(xié)程

發(fā)布時(shí)間:2022-03-18 13:46:41 來(lái)源:億速云 閱讀:234 作者:小新 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要介紹了操作系統(tǒng)中什么是進(jìn)程、線程、協(xié)程,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

進(jìn)程: 本質(zhì)上是一個(gè)獨(dú)立執(zhí)行的程序,進(jìn)程是操作系統(tǒng)進(jìn)行資源分配和調(diào)度的基本概念,操作系統(tǒng)進(jìn)行資源分配和調(diào)度的一個(gè)獨(dú)立單位。

線程: 是操作系統(tǒng)能夠進(jìn)行運(yùn)算調(diào)度的最小單位。它被包含在進(jìn)程之中,是進(jìn)程中的實(shí)際運(yùn)作單位。一個(gè)進(jìn)程中可以并發(fā)多個(gè)線程,每條線程執(zhí)行不同的任務(wù),切換受系統(tǒng)控制。


協(xié)程:  又稱為微線程,是一種用戶態(tài)的輕量級(jí)線程,協(xié)程不像線程和進(jìn)程需要進(jìn)行系統(tǒng)內(nèi)核上的上下文切換,協(xié)程的上下文切換是由用戶自己決定的,有自己的上下文,所以說(shuō)是輕量級(jí)的線程,也稱之為用戶級(jí)別的線程就叫協(xié)程,一個(gè)線程可以多個(gè)協(xié)程,線程進(jìn)程都是同步機(jī)制,而協(xié)程則是異步Java的原生語(yǔ)法中并沒(méi)有實(shí)現(xiàn)協(xié)程,目前python、Lua和GO等語(yǔ)言支持。


關(guān)系:一個(gè)進(jìn)程可以有多個(gè)線程,它允許計(jì)算機(jī)同時(shí)運(yùn)行兩個(gè)或多個(gè)程序。線程是進(jìn)程的最小執(zhí)行單位,CPU
的調(diào)度切換的是進(jìn)程和線程,進(jìn)程和線程多了之后調(diào)度會(huì)消耗大量的CPU,CPU上真正運(yùn)行的是線程,線程可
以對(duì)應(yīng)多個(gè)協(xié)程。

協(xié)程對(duì)于多線程有什么優(yōu)缺點(diǎn)嗎?

優(yōu)點(diǎn):
非常快速的上下文切換,不用系統(tǒng)內(nèi)核的上下文切換,減小開(kāi)銷。
單線程即可實(shí)現(xiàn)高并發(fā),單核CPU可以支持上萬(wàn)的協(xié)程。
由于只有一個(gè)線程,也不存在同時(shí)寫(xiě)變量的沖突,在協(xié)程中控制共享資源不需要加鎖。


缺點(diǎn):
協(xié)程無(wú)法利用多核資源,本質(zhì)也是個(gè)單線程。
協(xié)程需要和進(jìn)程配合才能運(yùn)行在多CPU上。
目前java沒(méi)成熟的第三方庫(kù),存在風(fēng)險(xiǎn)。
調(diào)試debug存在難度,不利于發(fā)現(xiàn)問(wèn)題。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“操作系統(tǒng)中什么是進(jìn)程、線程、協(xié)程”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!

向AI問(wèn)一下細(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