欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

go語言開啟協(xié)程的方法-創(chuàng)新互聯(lián)

本質(zhì)上,goroutine 就是協(xié)程。 不同的是,Golang 在 runtime、系統(tǒng)調(diào)用等多方面對 goroutine 調(diào)度進(jìn)行了封裝和處理,當(dāng)遇到長時間執(zhí)行或者進(jìn)行系統(tǒng)調(diào)用時。  

創(chuàng)新互聯(lián)成都企業(yè)網(wǎng)站建設(shè)服務(wù),提供網(wǎng)站設(shè)計制作、成都網(wǎng)站建設(shè)網(wǎng)站開發(fā),網(wǎng)站定制,建網(wǎng)站,網(wǎng)站搭建,網(wǎng)站設(shè)計,響應(yīng)式網(wǎng)站開發(fā),網(wǎng)頁設(shè)計師打造企業(yè)風(fēng)格網(wǎng)站,提供周到的售前咨詢和貼心的售后服務(wù)。歡迎咨詢做網(wǎng)站需要多少錢:18982081108

會主動把當(dāng)前 goroutine 的CPU (P) 轉(zhuǎn)讓出去,讓其他 goroutine 能被調(diào)度并執(zhí)行,也就是 Golang 從語言層面支持了協(xié)程。

Golang 的一大特色就是從語言層面原生支持協(xié)程,在函數(shù)或者方法前面加 go關(guān)鍵字就可創(chuàng)建一個協(xié)程。

其他方面的比較

內(nèi)存消耗方面

每個 goroutine (協(xié)程) 默認(rèn)占用內(nèi)存遠(yuǎn)比 Java 、C 的線程少。

goroutine:2KB

線程:8MB

線程和 goroutine 切換調(diào)度開銷方面

線程/goroutine 切換開銷方面,goroutine 遠(yuǎn)比線程小

線程:涉及模式切換(從用戶態(tài)切換到內(nèi)核態(tài))、16個寄存器、PC、SP...等寄存器的刷新等。

goroutine:只有三個寄存器的值修改 - PC / SP / DX.

我們知道,協(xié)程(coroutine)是Go語言中的輕量級線程實現(xiàn),由Go運行時(runtime)管理。

在一個函數(shù)調(diào)用前加上go關(guān)鍵字,這次調(diào)用就會在一個新的goroutine中并發(fā)執(zhí)行。當(dāng)被調(diào)用的函數(shù)返回時,這個goroutine也自動結(jié)束。需要注意的是,如果這個函數(shù)有返回值,那么這個返回值會被丟棄。

先看一下下面的程序代碼:

func Add(x, y int) {
    z := x + y
    fmt.Println(z)
}
func main() {
    for i:=0; i<10; i++ {
        go Add(i, i)
    }
}

執(zhí)行上面的代碼,會發(fā)現(xiàn)屏幕什么也沒打印出來,程序就退出了。

以上就是golang 如何開啟協(xié)程的詳細(xì)內(nèi)容,更多請關(guān)注創(chuàng)新互聯(lián)其它相關(guān)文章!

網(wǎng)站名稱:go語言開啟協(xié)程的方法-創(chuàng)新互聯(lián)
文章路徑:http://chinadenli.net/article46/ioohg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作企業(yè)建站網(wǎng)站制作面包屑導(dǎo)航微信小程序自適應(yīng)網(wǎng)站

廣告

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

手機網(wǎng)站建設(shè)