Go語言最大的特點(diǎn)就是并發(fā)編程憋槐,它實(shí)現(xiàn)了一種基于協(xié)程的并發(fā)模型。輕量級(jí)的協(xié)程模型減少了線程模型的切換消耗淑趾,大大增加了并發(fā)性能阳仔。本書這時(shí)對(duì)Go語言并發(fā)進(jìn)行深入講解的不可多得的好書。
image
書籍目錄
第1章 初識(shí)Go語言 1
1.1 語言特性 1
1.2 安裝和設(shè)置 2
1.3 工程結(jié)構(gòu) 3
1.3.1 工作區(qū) 3
1.3.2 GOPATH 4
1.3.3 源碼文件 5
1.3.4 代碼包 8
1.4 標(biāo)準(zhǔn)命令簡(jiǎn)述 11
1.5 問候程序 13
1.6 小結(jié) 14
第2章 語法概覽 15
2.1 基本構(gòu)成要素 15
2.1.1 標(biāo)識(shí)符 15
2.1.2 關(guān)鍵字 16
2.1.3 字面量 17
2.1.4 操作符 17
2.1.5 表達(dá)式 19
2.2 基本類型 20
2.3 高級(jí)類型 22
2.3.1 數(shù)組 23
2.3.2 切片 23
2.3.3 字典 24
2.3.4 函數(shù)和方法 25
2.3.5 接口 28
2.3.6 結(jié)構(gòu)體 29
2.4 流程控制 30
2.4.1 代碼塊和作用域 30
2.4.2 if語句 32
2.4.3 switch語句 32
2.4.4 for語句 34
2.4.5 defer語句 36
2.4.6 panic和recover 38
2.5 聊天機(jī)器人 40
2.6 小結(jié) 44
第3章 并發(fā)編程綜述 45
3.1 并發(fā)編程基礎(chǔ) 45
3.1.1 串行程序與并發(fā)程序 46
3.1.2 并發(fā)程序與并行程序 46
3.1.3 并發(fā)程序與并發(fā)系統(tǒng) 47
3.1.4 并發(fā)程序的不確定性 47
3.1.5 并發(fā)程序內(nèi)部的交互 47
3.2 多進(jìn)程編程 48
3.2.1 進(jìn)程 48
3.2.2 關(guān)于同步 55
3.2.3 管道 60
3.2.4 信號(hào) 65
3.2.5 socket 74
3.3 多線程編程 97
3.3.1 線程 98
3.3.2 線程的同步 107
3.4 多線程與多進(jìn)程 125
3.5 多核時(shí)代的并發(fā)編程 126
3.6 小結(jié) 130
第4章 Go的并發(fā)機(jī)制 131
4.1 原理探究 131
4.1.1 線程實(shí)現(xiàn)模型 132
4.1.2 調(diào)度器 142
4.1.3 更多細(xì)節(jié) 158
4.2 goroutine 160
4.2.1 go語句與goroutine 160
4.2.2 主goroutine的運(yùn)作 166
4.2.3 runtime包與goroutine 166
4.3 channel 169
4.3.1 channel的基本概念 169
4.3.2 單向channel 180
4.3.3 for語句與channel 184
4.3.4 select語句 185
4.3.5 非緩沖的channel 190
4.3.6 time包與channel 192
4.4 實(shí)戰(zhàn)演練:載荷發(fā)生器 198
4.4.1 參數(shù)和結(jié)果 199
4.4.2 基本結(jié)構(gòu) 201
4.4.3 初始化 206
4.4.4 啟動(dòng)和停止 212
4.4.5 調(diào)用器和功能測(cè)試 221
4.5 小結(jié) 231
第5章 同 步 232
5.1 鎖的使用 232
5.1.1 互斥鎖 232
5.1.2 讀寫鎖 236
5.1.3 鎖的完整示例 238
5.2 條件變量 244
5.3 原子操作 247
5.3.1 增或減 247
5.3.2 比較并交換 249
5.3.3 載入 250
5.3.4 存儲(chǔ) 251
5.3.5 交換 251
5.3.6 原子值 252
5.3.7 應(yīng)用于實(shí)際 256
5.4 只會(huì)執(zhí)行一次 257
5.5 WaitGroup 258
5.6 臨時(shí)對(duì)象池 262
5.7 實(shí)戰(zhàn)演練——Concurrent Map 265
5.8 小結(jié) 280
第6章 網(wǎng)絡(luò)爬蟲框架設(shè)計(jì)和實(shí)現(xiàn) 281
6.1 網(wǎng)絡(luò)爬蟲與框架 281
6.2 功能需求和分析 283
6.3 總體設(shè)計(jì) 284
6.4 詳細(xì)設(shè)計(jì) 286
6.4.1 基本數(shù)據(jù)結(jié)構(gòu) 286
6.4.2 接口的設(shè)計(jì) 293
6.5 工具的實(shí)現(xiàn) 309
6.5.1 緩沖器 309
6.5.2 緩沖池 311
6.5.3 多重讀取器 317
6.6 組件的實(shí)現(xiàn) 318
6.6.1 內(nèi)部基礎(chǔ)接口 319
6.6.2 組件注冊(cè)器 321
6.6.3 下載器 323
6.6.4 分析器 325
6.6.5 條目處理管道 328
6.7 調(diào)度器的實(shí)現(xiàn) 329
6.7.1 基本結(jié)構(gòu) 329
6.7.2 初始化 331
6.7.3 啟動(dòng) 333
6.7.4 停止 343
6.7.5 其他方法 344
6.7.6 總結(jié) 345
6.8 一個(gè)簡(jiǎn)單的圖片爬蟲 346
6.8.1 概述 346
6.8.2 命令參數(shù) 346
6.8.3 初始化調(diào)度器 348
6.8.4 監(jiān)控調(diào)度器 354
6.8.5 啟動(dòng)調(diào)度器 364
6.9 擴(kuò)展與思路 365
6.10 本章小結(jié) 368
附錄A Go語言的學(xué)習(xí)資源 369
本號(hào)提供電子書下載:https://u19702000.ctfile.com/fs/19702000-355800537
僅可用于非商業(yè)學(xué)習(xí)扣泊,如有侵權(quán)近范,請(qǐng)聯(lián)系本號(hào)刪除嘶摊。