Go語(yǔ)言采用兩級(jí)線程模型,即用戶線程與內(nèi)核線程KSE(kernel scheduling entity)是M:N的。最終goroutine還是會(huì)交給OS線程執(zhí)行,但是需要一個(gè)中介,提供上下文。
創(chuàng)新互聯(lián)公司-成都網(wǎng)站建設(shè)公司,專注成都做網(wǎng)站、成都網(wǎng)站建設(shè)、網(wǎng)站營(yíng)銷(xiāo)推廣,申請(qǐng)域名,網(wǎng)絡(luò)空間,成都網(wǎng)站托管有關(guān)企業(yè)網(wǎng)站制作方案、改版、費(fèi)用等問(wèn)題,請(qǐng)聯(lián)系創(chuàng)新互聯(lián)公司。
Go的CSP并發(fā)模型,是通過(guò) goroutine和channel 來(lái)實(shí)現(xiàn)的。 goroutine 是Go語(yǔ)言中并發(fā)的執(zhí)行單位。其實(shí)就是協(xié)程。 channel是Go語(yǔ)言中各個(gè)并發(fā)結(jié)構(gòu)體(goroutine)之前的通信機(jī)制。
Go就是基因里面支持的并發(fā),可以充分的利用多核,很容易的使用并發(fā)。內(nèi)置runtime,支持垃圾回收,這屬于動(dòng)態(tài)語(yǔ)言的特性之一吧,雖然目前來(lái)說(shuō)GC不算完美,但是足以應(yīng)付我們所能遇到的大多數(shù)情況,特別是Go1之后的GC。
我們通過(guò) go func()來(lái)創(chuàng)建一個(gè)goroutine;有兩個(gè)存儲(chǔ)G的隊(duì)列,一個(gè)是局部調(diào)度器P的本地隊(duì)列、一個(gè)是全局G隊(duì)列。
1、Go語(yǔ)言采用兩級(jí)線程模型,即用戶線程與內(nèi)核線程KSE(kernel scheduling entity)是M:N的。最終goroutine還是會(huì)交給OS線程執(zhí)行,但是需要一個(gè)中介,提供上下文。
2、Goroutine調(diào)度是一個(gè)很復(fù)雜的機(jī)制,下面嘗試用簡(jiǎn)單的語(yǔ)言描述一下Goroutine調(diào)度機(jī)制,想要對(duì)其有更深入的了解可以去研讀一下源碼。首先介紹一下GMP什么意思:G --- goroutine: 即Go協(xié)程,每個(gè)go關(guān)鍵字都會(huì)創(chuàng)建一個(gè)協(xié)程。
3、幸運(yùn)的是,Go 是一種非常簡(jiǎn)單易學(xué)的語(yǔ)言。它提供了您需要的基本功能,僅此而已。它引入的新概念是“延遲”聲明和內(nèi)置的并發(fā)管理與“goroutines”和通道。
4、已經(jīng)有好多程序員都把Go語(yǔ)言描述為是一種所見(jiàn)即所得(WYSIWYG)的編程語(yǔ)言。這是說(shuō),代碼要做的事和它在字面上表達(dá)的意思是完全一致的。 在這些新語(yǔ)言中,包含D,Go,Rust和Vala語(yǔ)言,Go曾一度出現(xiàn)在TIOBE的排行榜上面。
5、無(wú)緩沖的通道(unbuffered channel)是指在接收前沒(méi)有能力保存任何值的通道。這種類(lèi)型的通道要求發(fā)送goroutine和接收goroutine同時(shí)準(zhǔn)備好,才能完成發(fā)送和接收操作。否則,通道會(huì)導(dǎo)致先執(zhí)行發(fā)送或接收操作的 goroutine 阻塞等待。
默認(rèn)情況下,Go編程語(yǔ)言使用調(diào)用通過(guò)值的方法來(lái)傳遞參數(shù)。在一般情況下,這意味著,在函數(shù)內(nèi)碼不能改變用來(lái)調(diào)用所述函數(shù)的參數(shù)。考慮函數(shù)swap()的定義如下。
可以看到,這種實(shí)踐模式主要作用于配置選項(xiàng),利用函數(shù)支持的特性來(lái)實(shí)現(xiàn)的,為此得名 Functional Options Pattern,優(yōu)美的中國(guó)話叫做「函數(shù)選項(xiàng)模式」。
go語(yǔ)言函數(shù)參數(shù)在后面顯示。go的包文件需要放在環(huán)境目錄中的src目錄下,go的包函數(shù)需要首字母大寫(xiě)才可以被調(diào)用。例如:funcadd(xint,yint)int{returnx+y}123。
當(dāng)前標(biāo)題:go語(yǔ)言執(zhí)行原理 go語(yǔ)言程序
網(wǎng)站URL:http://www.chinadenli.net/article18/dccpcdp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、用戶體驗(yàn)、網(wǎng)站維護(hù)、動(dòng)態(tài)網(wǎng)站、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、標(biāo)簽優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(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)