go語(yǔ)言中協(xié)程與線程的區(qū)別有哪些

這篇文章主要介紹“go語(yǔ)言中協(xié)程與線程的區(qū)別有哪些”的相關(guān)知識(shí),小編通過(guò)實(shí)際案例向大家展示操作過(guò)程,操作方法簡(jiǎn)單快捷,實(shí)用性強(qiáng),希望這篇“go語(yǔ)言中協(xié)程與線程的區(qū)別有哪些”文章能幫助大家解決問(wèn)題。

我們提供的服務(wù)有:成都網(wǎng)站建設(shè)、做網(wǎng)站、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、神農(nóng)架林區(qū)ssl等。為千余家企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢(xún)和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的神農(nóng)架林區(qū)網(wǎng)站制作公司

區(qū)別:1、一個(gè)線程可以多個(gè)協(xié)程,一個(gè)進(jìn)程也可以單獨(dú)擁有多個(gè)協(xié)程;2、線程是同步機(jī)制,而協(xié)程則是異步;3、協(xié)程能保留上一次調(diào)用時(shí)的狀態(tài),線程不行;4、線程是搶占式,協(xié)程是非搶占式的;5、線程是被分割的CPU資源,協(xié)程是組織好的代碼流程,協(xié)程需要線程來(lái)承載運(yùn)行。

線程

線程是指進(jìn)程內(nèi)的一個(gè)執(zhí)行單元,也是進(jìn)程內(nèi)的可調(diào)度實(shí)體。線程是進(jìn)程的一個(gè)實(shí)體,是 CPU 調(diào)度和分派的基本單位,它是比進(jìn)程更小的能獨(dú)立運(yùn)行的基本單位。

線程自己基本上不擁有系統(tǒng)資源,只擁有一點(diǎn)在運(yùn)行中必不可少的資源(如程序計(jì)數(shù)器,一組寄存器和棧),但是它可與同屬一個(gè)進(jìn)程的其他的線程共享進(jìn)程所擁有的全部資源。

線程間通信主要通過(guò)共享內(nèi)存,上下文切換很快,資源開(kāi)銷(xiāo)較少,但相比進(jìn)程不夠穩(wěn)定容易丟失數(shù)據(jù)。

協(xié)程

協(xié)程是一種用戶(hù)態(tài)的輕量級(jí)線程,協(xié)程的調(diào)度完全由用戶(hù)控制。從技術(shù)的角度來(lái)說(shuō),“協(xié)程就是你可以暫停執(zhí)行的函數(shù)”。協(xié)程擁有自己的寄存器上下文和棧。

協(xié)程調(diào)度切換時(shí),將寄存器上下文和棧保存到其他地方,在切回來(lái)的時(shí)候,恢復(fù)先前保存的寄存器上下文和棧,直接操作棧則基本沒(méi)有內(nèi)核切換的開(kāi)銷(xiāo),可以不加鎖的訪問(wèn)全局變量,所以上下文的切換非??臁?/p>

協(xié)程與線程的區(qū)別

一個(gè)線程可以多個(gè)協(xié)程,一個(gè)進(jìn)程也可以單獨(dú)擁有多個(gè)協(xié)程。

線程進(jìn)程都是同步機(jī)制,而協(xié)程則是異步。

協(xié)程能保留上一次調(diào)用時(shí)的狀態(tài),每次過(guò)程重入時(shí),就相當(dāng)于進(jìn)入上一次調(diào)用的狀態(tài)。

線程是搶占式,而協(xié)程是非搶占式的,所以需要用戶(hù)自己釋放使用權(quán)來(lái)切換到其他協(xié)程,因此同一時(shí)間其實(shí)只有一個(gè)協(xié)程擁有運(yùn)行權(quán),相當(dāng)于單線程的能力。

協(xié)程并不是取代線程,而且抽象于線程之上。線程是被分割的 CPU 資源,協(xié)程是組織好的代碼流程,協(xié)程需要線程來(lái)承載運(yùn)行,線程是協(xié)程的資源,但協(xié)程不會(huì)直接使用線程,協(xié)程直接利用的是執(zhí)行器(Interceptor),執(zhí)行器可以關(guān)聯(lián)任意線程或線程池,可以使當(dāng)前線程,UI線程或新建新程。

線程是協(xié)程的資源。協(xié)程通過(guò) Interceptor 來(lái)間接使用線程這個(gè)資源。

關(guān)于“go語(yǔ)言中協(xié)程與線程的區(qū)別有哪些”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí),可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,小編每天都會(huì)為大家更新不同的知識(shí)點(diǎn)。

當(dāng)前標(biāo)題:go語(yǔ)言中協(xié)程與線程的區(qū)別有哪些
URL鏈接:http://muchs.cn/article6/jpjdig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、ChatGPT、虛擬主機(jī)、標(biāo)簽優(yōu)化靜態(tài)網(wǎng)站、關(guān)鍵詞優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)