注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)操作系統(tǒng)其他操作系統(tǒng)深度探索Go語(yǔ)言:對(duì)象模型與runtime的原理、特性及應(yīng)用

深度探索Go語(yǔ)言:對(duì)象模型與runtime的原理、特性及應(yīng)用

深度探索Go語(yǔ)言:對(duì)象模型與runtime的原理、特性及應(yīng)用

定 價(jià):¥100.00

作 者: 封幼林
出版社: 清華大學(xué)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

ISBN: 9787302600855 出版時(shí)間: 2022-08-01 包裝: 平裝
開(kāi)本: 頁(yè)數(shù): 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  本書主要講解了Go語(yǔ)言一些關(guān)鍵特性的實(shí)現(xiàn)原理,Nicklaus Wirth大師曾經(jīng)說(shuō)過(guò):算法+數(shù)據(jù)結(jié)構(gòu)=程序,語(yǔ)言特性的實(shí)現(xiàn)也不外乎就是數(shù)據(jù)結(jié)構(gòu)+代碼邏輯。全書共分為4個(gè)部分:第一部分是基礎(chǔ)特性(第1章~第3章),第二部分是對(duì)象模型(第4章~第5章),第三部分是調(diào)度系統(tǒng)(第6章~第7章),第四部分是內(nèi)存管理(第8章~第9章)。書中主要內(nèi)容包括:指針、函數(shù)棧幀、調(diào)用約定、變量逃逸、Function Value、閉包、defer、panic、方法、Method Value、組合式繼承、接口、類型斷言、反射、goroutine、搶占式調(diào)度、同步、堆和棧的管理,以及GC等。書中包含大量的探索示例和源碼分析,在學(xué)會(huì)應(yīng)用的同時(shí)還能了解實(shí)現(xiàn)原理。書中絕大部分代碼都是用Go語(yǔ)言實(shí)現(xiàn),還有少部分使用匯編語(yǔ)言,都可以使用Go官方SDK直接編譯。探索過(guò)程循序漸進(jìn)條理清晰,用到的工具也都是SDK自帶,方便讀者親自上手實(shí)踐。本書適合Go語(yǔ)言的初學(xué)者,在學(xué)習(xí)語(yǔ)言特性的同時(shí)了解其實(shí)現(xiàn)原理。更適合有一定的Go語(yǔ)言應(yīng)用基礎(chǔ),想要深入研究底層原理的技術(shù)人員。同樣適合有一些其他編程語(yǔ)言基礎(chǔ),想要轉(zhuǎn)學(xué)Go語(yǔ)言的開(kāi)發(fā)者。

作者簡(jiǎn)介

  封幼林,資深軟件工程師,十多年IT從業(yè)經(jīng)驗(yàn),曾涉足Win32桌面程序開(kāi)發(fā)、Android移動(dòng)端開(kāi)發(fā),以及互聯(lián)網(wǎng)服務(wù)器端開(kāi)發(fā)等多個(gè)領(lǐng)域。喜歡研究底層技術(shù),用自己的方法探究背后的實(shí)現(xiàn)原理。熱愛(ài)技術(shù)交流與分享,創(chuàng)建了微信公眾號(hào)“幼麟實(shí)驗(yàn)室”,致力做一些形象、通透的計(jì)算機(jī)教程,讓開(kāi)發(fā)者“知其然亦知其所以然”。

圖書目錄

第1章匯編基礎(chǔ)

1.1x86通用寄存器

1.1.132位架構(gòu)

1.1.264位架構(gòu)

1.2常用匯編指令

1.2.1整數(shù)加減指令

1.2.2數(shù)據(jù)傳輸指令

1.2.3入棧和出棧指令

1.2.4分支跳轉(zhuǎn)指令

1.2.5過(guò)程調(diào)用指令

1.3內(nèi)存分頁(yè)機(jī)制

1.3.1線性地址

1.3.280386兩級(jí)頁(yè)表

1.3.3PAE三級(jí)頁(yè)表

1.3.4x64四級(jí)頁(yè)表

1.3.5虛擬內(nèi)存

1.4匯編代碼風(fēng)格

1.5本章小結(jié)

第2章指針(7min)

2.1指針構(gòu)成

2.1.1地址

2.1.2元素類型

2.2相關(guān)操作

2.2.1取地址

2.2.2解引用

2.2.3強(qiáng)制類型轉(zhuǎn)換

2.2.4指針運(yùn)算

2.3unsafe包

2.3.1標(biāo)準(zhǔn)庫(kù)與keyword

2.3.2關(guān)于uintptr

2.3.3內(nèi)存對(duì)齊

2.4本章小結(jié)

第3章函數(shù)(44min)

3.1棧幀

3.1.1棧幀布局

3.1.2尋址方式

3.1.3又見(jiàn)內(nèi)存對(duì)齊

3.1.4調(diào)用約定

3.1.5Go 1.17的變化

3.2逃逸分析

3.2.1什么是逃逸分析

3.2.2不逃逸分析

3.2.3不逃逸判斷

3.3Function Value

3.3.1函數(shù)指針

3.3.2Function Value分析

3.3.3閉包

3.4defer

3.4.1最初的鏈表

3.4.2棧上分配

3.4.3高效的open coded defer

3.5panic

3.5.1gopanic()函數(shù)

3.5.2gorecover()函數(shù)

3.5.3嵌套的panic

3.5.4支持open coded defer

3.6本章小結(jié)

第4章方法(6min)

4.1接收者類型

4.1.1值類型

4.1.2指針類型

4.1.3包裝方法

4.2Method Value

4.2.1基于類型

4.2.2基于對(duì)象

4.3組合式繼承

4.3.1嵌入值

4.3.2嵌入指針

4.3.3多重繼承

4.4本章小結(jié)

第5章接口(27min)

5.1空接口

5.1.1一個(gè)更好的void*

5.1.2類型元數(shù)據(jù)

5.1.3逃逸與裝箱

5.2非空接口

5.2.1動(dòng)態(tài)派發(fā)

5.2.2具體實(shí)現(xiàn)

5.2.3接收者類型

5.2.4組合式繼承

5.3類型斷言

5.3.1E To 具體類型

5.3.2E To I

5.3.3I To 具體類型

5.3.4I To I

5.4反射

5.4.1類型系統(tǒng)

5.4.2類型元數(shù)據(jù)詳細(xì)講解

5.4.3對(duì)數(shù)據(jù)的操作

5.4.4對(duì)鏈接器裁剪的影響

5.5本章小結(jié)

第6章goroutine(48min)

6.1進(jìn)程、線程與協(xié)程

6.1.1進(jìn)程

6.1.2線程

6.1.3協(xié)程

6.2IO多路復(fù)用

6.2.13種網(wǎng)絡(luò)IO模型

6.2.2示例對(duì)比

6.3巧妙結(jié)合

6.4GMP模型

6.4.1基本概念

6.4.2從GM到GMP

6.5GMP主要數(shù)據(jù)結(jié)構(gòu)

6.5.1runtime.g

6.5.2runtime.m

6.5.3runtime.p

6.5.4schedt

6.6調(diào)度器初始化

6.6.1調(diào)度器初始化過(guò)程

6.6.2runtime.schedinit()函數(shù)

6.7G的創(chuàng)建與退出

6.7.1相關(guān)匯編函數(shù)

6.7.2runtime.newproc()函數(shù)

6.8調(diào)度循環(huán)

6.8.1runtime.schedule()函數(shù)

6.8.2runtime.findrunnable()函數(shù)

6.9搶占式調(diào)度

6.9.1Go 1.13的搶占式調(diào)度

6.9.2Go 1.14的搶占式調(diào)度

6.10timer

6.10.1一個(gè)示例

6.10.2數(shù)據(jù)結(jié)構(gòu)

6.10.3操作函數(shù)

6.11netpoller

6.11.1跨平臺(tái)的netpoller

6.11.2TCP連接的Read()方法

6.12監(jiān)控線程

6.12.1按需執(zhí)行timer和netpoll

6.12.2搶占G和P

6.12.3強(qiáng)制執(zhí)行GC

6.13本章小結(jié)

第7章同步(32min)

7.1Happens Before

7.1.1并發(fā)

7.1.2并行

7.2內(nèi)存亂序

7.2.1編譯期亂序

7.2.2執(zhí)行期亂序

7.2.3內(nèi)存排序指令

7.3常見(jiàn)的鎖

7.3.1原子指令

7.3.2自旋鎖

7.3.3調(diào)度器對(duì)象

7.3.4優(yōu)化的鎖

7.4Go語(yǔ)言的同步

7.4.1runtime.mutex

7.4.2semaphore

7.4.3sync.Mutex

7.4.4channel

7.5本章小結(jié)

第8章堆(17min)

8.1內(nèi)存分配

8.1.1sizeclasses

8.1.2heapArena

8.1.3mspan

8.1.4mcentral

8.1.5mcache

8.1.6mallocgc

8.2垃圾回收

8.2.1GC root

8.2.2三色抽象

8.2.3寫屏障

8.2.4觸發(fā)方式

8.2.5GC Worker

8.2.6gctrace

8.3本章小結(jié)

第9章棧(8min)

9.1棧分配

9.1.1棧分配初始化

9.1.2棧分配邏輯

9.2棧增長(zhǎng)

9.2.1棧增長(zhǎng)檢測(cè)代碼

9.2.2棧增長(zhǎng)函數(shù)

9.3棧收縮

9.4棧釋放

9.4.1小于或等于16KB的??臻g

9.4.2大于或等于32KB的??臻g

9.4.3棧釋放時(shí)機(jī)

9.5本章小結(jié)

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)