| *數量非實際在台庫存 *完成訂單後正常情形下約兩周可抵台。 *本賣場提供之資訊僅供參考,以到貨標的為實際資訊。 印行年月:202311*若逾兩年請先於私訊洽詢存貨情況,謝謝。 台灣(台北市)在地出版社,每筆交易均開具統一發票,祝您中獎最高1000萬元。 書名:深入理解Go併發編程-從原理到實踐,看這本就夠了 ISBN:9787121466465 出版社:電子工業 著編譯者:晁嶽攀 頁數:1 所在地:中國大陸 *此為代購商品 書號:1596267 可大量預訂,請先連絡。 內容簡介 本書從標準庫的併發原語講起,循序漸進的介紹擴展庫、分散式的併發原語、併發模式和經典併發問題。內容從併發原語的使用場景、使用方法、常見錯誤,內部實現多層次的講解,全面的介紹Go併發的知識。全書分為三個部分,主要部分又分為四個層次。第一部分主要介紹Go標準庫提供的各種併發類型(併發原語)的知識,方便初學Go語言的同學能夠掌握好Go語言的基礎能力,包括一些Go開發者都不熟悉的類型。第二部分屬於拔高的內容,介紹積累優秀的擴展庫,幫助Go開發者擴展思維,提高視野。這些擴展庫如果能夠掌握,在工作中會大有裨益。第三部分介紹分散式併發原語。這部分內容鮮有人介紹,但是屬於互聯網公司常用的一些場景,尤其是開發大型分散式項目。很多讀者缺乏這方面的經驗和機會,通過閱讀此書,可以彌補這方面的知識的缺乏和實戰的機會。目錄 第1章 Go併發編程和調度器1 1 Go特別適合併發編程 1 2 併發 vs 并行 1 3 阿姆達爾定律:併發編程優化是有上限的 1 4 Go併發並不一定最快 1 5 Go運行時調度器 第2章 互斥鎖 Mutex 2 1 競爭條件與數據競爭 2 2 Mutex的用法 2 2 1 一個併發問題 2 2 2 Mutex的使用 2 2 3 地道的用法 2 3 檢查程序中的數據競爭 2 4 Mutex的歷史實現 2 4 1 初始版本 2 4 2 多給新的 goroutine 一些機會 2 4 3 多給競爭者一些機會 2 4 4 解決飢餓問題 2 4 5 TryLock 2 5 Mutex的使用陷阱 2 5 1 誤寫 2 5 2 死鎖 2 5 3 鎖重入 2 5 4 複製鎖 2 6 Mutex的擴展 2 6 1 可重入鎖 2 6 2 支持併發 map 2 6 3 封裝值 第3章 讀寫鎖 RWMutex 3 1 讀寫鎖的使用場景 3 2 讀寫鎖的使用方法 3 3 讀寫鎖的實現 3 3 1 RLock的實現 3 3 2 RUnlock的實現 3 3 3 Lock的實現 3 3 4 Unlock的實現 3 3 5 TryLock的實現 3 3 6 TryRLock的實現 3 4 讀寫鎖的使用陷阱 3 4 1 鎖重入 3 4 2 死鎖 3 4 3 發現死鎖 3 5 讀寫鎖的擴展 第4章 任務編排好幫手 WaitGroup 4 1 WaitGroup的使用方法 4 2 WaitGroup的實現 4 3 WaitGroup的使用陷阱 4 3 1 Add 方法調用的時機不對 4 3 2 計數器的值為負數 4 3 3 錯誤的調用 Add的時機 4 3 4 知名項目中關於 WaitGroup 使用的 bug 4 4 WaitGroup的擴展 4 5 noCopy:輔助 vet 檢查 第5章 條件變數 Cond 5 1 Cond的使用方法 5 2 Cond的實現 5 3 Cond的使用陷阱 5 3 1 調用 Wait 時沒有加鎖 5 3 2 喚醒之後不檢查判斷條件 5 4 在實際項目中使用 Cond的例子 第6章 單例化利器 Once 6 1 Once的使用方法 6 2 Once的實現 6 3 Once的使用陷阱 6 3 1 死鎖 6 3 2 未初始化 第7章 併發 map 7 1 線程安全的 map 7 1 1 使用 map的兩種常見錯誤 7 1 2 加讀寫鎖:擴展 map,支持併發讀/寫 7 2 sync Map的使用方法 7 3 sync Map的實現 7 3 1 Swap 方法 7 3 2 Load 方法 7 3 3 Delete 方法 7 4 分片加鎖:更高效的併發map 7 5 lock-free map 第8章 池 Pool 8 1 sync Pool的使用方法 8 2 sync Pool的實現 8 2 1 Get 方法的實現 8 2 2 Put 方法的實現 8 3 sync Pool的使用陷阱 8 4 連接池 8 4 1 標準庫中的 HTTP Client 池 8 4 2 資料庫連接池 8 4 3 TCP 連 接池 8 4 4 Memcached Client 連接池 8 4 5 net/rpc 中的 Request/Response 對象池 8 5 goroutine/worker 池 第9章 不止是上下文:Context 9 1 Context的發展歷史 9 2 Context的使用方法 9 2 1 基本用法 9 2 2 傳遞上下文 9 2 3 可撤銷的上下文 9 2 4 帶超時功能的上下文 9 3 Context 實戰 9 4 Context的使用陷阱 9 5 Context的實現 9 5 1 WithValue的實現 9 5 2 WithCancel的實現 9 5 3 WithDeadline的實現 第10章 原子操作 10 1 原子操作的基礎知識 10 2 原子操作的使用場景 10 3 atomic 提供的函數和類型 10 3 1 AddXXX 函數 10 3 2 CompareAndSwapXXX 函數 10 3 3 SwapXXX 函數 10 3 4 LoadXXX 函數 10 3 5 StoreXXX 函數 10 3 6 Value 類型 10 3 7 Bool、Int32、Int64、Pointer、Uint32、Uint64、Uintptr 10 4 uber-go/atomic 庫 10 5 lock-free 隊列的實現 10 6 原子性和可見性 第11章 channel 基礎:另闢蹊徑解決併發問題 11 1 channel的歷史 11 2 channel的應用場景 11 3 channel的基本用法 11 4 channel的實現 11 4 1 channel的數據結構 11 4 2 初始化 11 4 3 發送數據 11 4 4 接收數據 11 4 5 關閉 channel 11 5 channel的使用陷阱 / 224 11 5 1 panic 和 goroutine 泄漏 11 5 2 知名項目踩過的坑 第12章 channel的內部實現和陷阱 12 1 使用反射操作 select 和 channel 12 2 channel的應用場景 第13章 Go內存模型 13 1 指令重排和可見性的問題 13 2 sequenced before、synchronized before 和 happens before 13 3 各種同步原語的同步保證 13 3 1 初始化 13 3 2 goroutine的運行 13 3 3 channel 13 3 4 鎖(Mutex 和 RWMutex) 13 3 5 Once 13 3 6 WaitGroup 13 3 7 atomic操作 13 3 8 Finalizer、sync Cond、sync Map 和 sync Pool 13 4 不正確的同步 第14章 信號量 Semaphore 14 1 什麼是信號量 14 1 詳細資料或其他書籍請至台灣高等教育出版社查詢,查後請於PChome商店街私訊告知ISBN或書號,我們即儘速上架。 |