資料介紹
channel是Golang在語言層面提供的goroutine間的通信方式,比Unix管道更易用也更輕便。channel主要用于進(jìn)程內(nèi)各goroutine間通信,如果需要跨進(jìn)程通信,建議使用分布式系統(tǒng)的方法來解決。本章從源碼角度分析channel的實(shí)現(xiàn)機(jī)制,實(shí)際上這部分源碼非常簡單易讀。
從數(shù)據(jù)結(jié)構(gòu)可以看出channel由隊(duì)列、類型信息、goroutine等待隊(duì)列組成,下面分別說明其原理。
chan內(nèi)部實(shí)現(xiàn)了一個(gè)環(huán)形隊(duì)列作為其緩沖區(qū),隊(duì)列的長度是創(chuàng)建chan時(shí)指定的。下圖展示了一個(gè)可緩存6個(gè)元素的channel示意圖:
dataqsiz指示了隊(duì)列長度為6,即可緩存6個(gè)元素; buf指向隊(duì)列的內(nèi)存,隊(duì)列中還剩余兩個(gè)元素; qcount表示隊(duì)列中還有兩個(gè)元素; sendx指示后續(xù)寫入的數(shù)據(jù)存儲(chǔ)的位置,取值[0, 6); recvx指示從該位置讀取數(shù)據(jù), 取值[0, 6);
《Go專家編程》深入地講解了Go語言常見特性的內(nèi)部機(jī)制和實(shí)現(xiàn)方式,大部分內(nèi)容源自對(duì)Go語言源碼的分析,并從中提煉出實(shí)現(xiàn)原理。通過閱讀本書,讀者可以快速、輕松地了解Go語言的內(nèi)部運(yùn)作機(jī)制。
本書首先介紹Go語言常見的數(shù)據(jù)結(jié)構(gòu)及控制結(jié)構(gòu)的實(shí)現(xiàn)原理,包括管道、切片、Hash表、select和for-range等,這部分內(nèi)容大都以幾個(gè)精心準(zhǔn)備的測(cè)驗(yàn)題目開頭,每個(gè)測(cè)驗(yàn)題目均對(duì)應(yīng)一個(gè)知識(shí)點(diǎn),讀者可以借此測(cè)驗(yàn)自身對(duì)該知識(shí)點(diǎn)的掌握程度。接著介紹了Go語言最基礎(chǔ)的概念,包括協(xié)程的概念、協(xié)程調(diào)度模型、協(xié)程調(diào)度策略,以及內(nèi)存分配和垃圾回收相關(guān)的內(nèi)容。本書還介紹了一些標(biāo)準(zhǔn)庫、異常處理和依賴管理等非語法相關(guān)但非常重要的內(nèi)容。最后結(jié)合作者的見聞,整理了一些發(fā)生在真實(shí)項(xiàng)目中的編程陷阱。
- 圖解數(shù)字磁帶錄音機(jī)的PDF電子書免費(fèi)下載 109次下載
- 現(xiàn)代無線電實(shí)驗(yàn)的PDF電子書免費(fèi)下載 285次下載
- 半導(dǎo)體收音機(jī)淺談的PDF電子書免費(fèi)下載 171次下載
- 光學(xué)諧振腔的圖解分析與設(shè)計(jì)方法的PDF電子書免費(fèi)下載 132次下載
- MATLAB函數(shù)速查手冊(cè)PDF電子書免費(fèi)下載 150次下載
- 電子管數(shù)據(jù)手冊(cè)合集PDF電子書免費(fèi)下載 82次下載
- 寫給文科生看的編程入門Python管窺PDF電子書免費(fèi)下載 7次下載
- 8051系列單片機(jī)C程序設(shè)計(jì)完全手冊(cè)PDF電子書免費(fèi)下載 286次下載
- 51單片機(jī)100實(shí)例源碼的注釋詳細(xì)PDF電子書免費(fèi)下載 220次下載
- 電冰箱快速維修PDF電子書免費(fèi)下載 51次下載
- 家電維修1128例PDF電子書免費(fèi)下載 207次下載
- 家用電器集成電路應(yīng)用大全PDF電子書免費(fèi)下載 120次下載
- STM8 C語言精品編程100例PDF版電子書免費(fèi)下載 0次下載
- 數(shù)字信號(hào)處理算法C語言實(shí)現(xiàn)PDF版電子書免費(fèi)下載 0次下載
- 《Visual C++游戲編程基礎(chǔ)》電子書.pdf 0次下載
- go語言如何解決并發(fā)問題 158次閱讀
- Go編程語言-你應(yīng)該知道的一切 686次閱讀
- 電子書閱讀器內(nèi)置鋰電池供電自動(dòng)切換電路 2030次閱讀
- Go并發(fā)模型的實(shí)現(xiàn)原理 1411次閱讀
- Go 1.18 正式發(fā)布后有哪些特性 3115次閱讀
- 手機(jī)熱點(diǎn)可以替代寬帶長期使用嗎? 4396次閱讀
- Rust相比Go的優(yōu)劣勢(shì) 4001次閱讀
- GO語言簡介!GO是理想的編程語言嗎? 4402次閱讀
- 機(jī)器學(xué)習(xí)入門寶典《統(tǒng)計(jì)學(xué)習(xí)方法》的介紹 4682次閱讀
- Go語言在多線程領(lǐng)域編程、跨異構(gòu)平臺(tái)及編程難易程度的優(yōu)勢(shì) 6310次閱讀
- Go和Python,Erlang的語言對(duì)比分析和Go編程示例概述 7755次閱讀
- 我們?cè)谑褂?b class="flag-6" style="color: red">Go語言編程之前有什么呢?為什么選擇Go語言編程? 4023次閱讀
- 網(wǎng)易有道CEO周楓推薦Go語言并介紹Go語言的3個(gè)優(yōu)點(diǎn) 5227次閱讀
- 最新電子書拆解評(píng)測(cè)系列報(bào)道(一):打開你的眼界 1.2w次閱讀
- AUTOCAD2009免費(fèi)下載中文版 CAD2009簡體中文下載及安裝方法 1.3w次閱讀
下載排行
本周
- 1電子電路原理第七版PDF電子教材免費(fèi)下載
- 0.00 MB | 1497次下載 | 免費(fèi)
- 2TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 3單片機(jī)典型實(shí)例介紹
- 18.19 MB | 103次下載 | 1 積分
- 4S7-200PLC編程實(shí)例詳細(xì)資料
- 1.17 MB | 28次下載 | 1 積分
- 5筆記本電腦主板的元件識(shí)別和講解說明
- 4.28 MB | 18次下載 | 4 積分
- 6開關(guān)電源原理及各功能電路詳解
- 0.38 MB | 15次下載 | 免費(fèi)
- 79天練會(huì)電子電路識(shí)圖
- 5.91 MB | 6次下載 | 免費(fèi)
- 8100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234314次下載 | 免費(fèi)
- 2PADS 9.0 2009最新版 -下載
- 0.00 MB | 66304次下載 | 免費(fèi)
- 3protel99下載protel99軟件下載(中文版)
- 0.00 MB | 51209次下載 | 免費(fèi)
- 4LabView 8.0 專業(yè)版下載 (3CD完整版)
- 0.00 MB | 51043次下載 | 免費(fèi)
- 5555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33564次下載 | 免費(fèi)
- 6接口電路圖大全
- 未知 | 30321次下載 | 免費(fèi)
- 7Multisim 10下載Multisim 10 中文版
- 0.00 MB | 28588次下載 | 免費(fèi)
- 8開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21540次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537794次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234314次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191183次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183278次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138039次下載 | 免費(fèi)
評(píng)論