Go 並發編程實戰, 2/e Go并发编程实战(第2版)

郝林

  • 出版商: 人民郵電
  • 出版日期: 2017-04-01
  • 售價: $474
  • 貴賓價: 9.5$450
  • 語言: 簡體中文
  • 頁數: 380
  • 裝訂: 平裝
  • ISBN: 7115452512
  • ISBN-13: 9787115452511
  • 相關分類: Go 程式語言
  • 立即出貨 (庫存 < 3)

買這商品的人也買了...

商品描述

本書首先介紹了Go語言的優勢特性、安裝設置方法、工程結構、標準命令和工具、語法基礎、數據類型以及流程控制方法,接著闡述了與多進程編程和多線程編程有關的知識,然後重點介紹了goroutine、channel以及Go提供的傳統同步方法,之後通過一個完整實例——網絡爬蟲框架進一步闡述Go語言的哲學和理念,同時分享作者在多年編程生涯中的一些見解和感悟。
與上一版相比,本書不僅基於Go 1.8對上一版進行了全面更新,而且更深入地描繪了Go運行時系統的內部機理,並且大幅改進了示例代碼。
本書適用於有一定電腦編程基礎的從業者以及對Go語言編程感興趣的愛好者,非常適合作為Go語言編程進階教程。

作者簡介

郝林
從業12年有餘的軟件工匠,國內知名的Go語言技術佈道者,Go語言北京用戶組和GoHackers社群的發起人和組織者,多套免費在線Go語言教程的作者,深信Go語言在人工智能時代和機器人時代也能大放異彩的科技信徒。

目錄大綱

第1章初識Go語言1 
1.1語言特性1 
1.2安裝和設置2 
1.3工程結構3 
1.3.1工作區3 
1.3.2 GOPATH 4 
1.3.3源碼文件5 
1.3.4代碼包8 
1.4標準命令簡述11 
1.5問候程序13 
1.6小結14 


第2章語法概覽15 
2.1基本構成要素15 
2.1.1標識符15 
2.1.2關鍵字16 
2.1.3字面量17 
2.1.4操作符17 
2.1.5表達式19 
2.2基本類型20 
2.3高級類型22 
2.3.1數組23 
2.3.2切片23 
2.3.3字典24 
2.3.4函數和方法25 
2.3.5接口28 
2.3.6結構體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聊天機器人40 
2.6小結44 


第3章並發編程綜述45 
3.1並發編程基礎45 
3.1.1串行程序與並發程序46 
3.1.2並發程序與並行程序46 
3.1.3並發程序與並發系統47 
3.1.4並發程序的不確定性47 
3.1.5並發程序內部的交互47 
3.2多進程編程48 
3.2.1進程48 
3.2.2關於同步55 
3.2.3管道60 
3.2.4信號65 
3.2.5 socket 74 
3.3多線程編程97 
3.3.1線程98 
3.3.2線程的同步107 
3.4多線程與多進程125 
3.5多核時代的並發編程126 
3.6小結130 


第4章Go的並發機制131 
4.1原理探究131 
4.1.1線程實現模型132 
4.1.2調度器142 
4.1.3更多細節158 
4.2 goroutine 160 
4.2.1 go語句與goroutine 160 
4.2.2主goroutine的運作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實戰演練:載荷發生器198 
4.4.1參數和結果199 
4.4.2基本結構201 
4.4.3初始化206 
4.4.4啟動和停止212 
4.4.5調用器和功能測試221 
4.5小結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存儲251 
5.3.5交換251 
5.3.6原子值252 
5.3.7應用於 際256 
5.4只會執行一次257 
5.5 WaitGroup 258 
5.6臨時對像池262 
5.7實戰演練——Concurrent Map 265 
5.8小結280 


第6章網絡爬蟲框架設計和實現281 
6.1網絡爬蟲與框架281 
6.2功能需求和分析283 
6.3總體設計284 
6.4詳細設計286 
6.4.1基本數據結構286 
6.4.2接口的設計293 
6.5工具的實現309 
6.5.1緩衝器309 
6.5.2緩衝池311 
6.5.3多重讀取器317 
6.6組件的實現318 
6.6.1內部基礎接口319 
6.6.2組件註冊器321 
6.6.3下載器323 
6.6.4分析器325 
6.6.5條目處理管道328 
6.7調度器的實現329 
6.7.1基本結構329 
6.7.2初始化331 
6.7.3啟動333 
6.7.4停止343 
6.7.5其他方法344 
6.7.6總結345 
6.8一個簡單的圖片爬蟲346 
6.8.1概述346 
6.8.2命令參數346 
6.8.3初始化調度器348 
6.8.4監控調度器354 
6.8.5啟動調度器364 
6.9擴展與思路365 
6.10本章小結368 
附錄A Go語言的學習資源369