最新IT書籍推介《Go語言並發之道》
阿新 • • 發佈:2019-03-24
全面 混亂 附錄 活鎖 循環 腳本 均衡 pipe cal 作者簡介
Katherine Cox-Buday是一名計算機科學家,目前工作於 Simple online banking。她的業余愛好包括軟件工程、創作、Go 語言(igo、baduk、weiquei) 以及音樂,這些都是她長期的追求,並且有著不同層面的貢獻。 goroutine 47
sync包 58
WaitGroup 58
互斥鎖和讀寫鎖 60
cond 64
once 69
池 71
channel 76
select 語句 92
GOMAXPROCS控制 97
小結 98
第4章 Go語言的並發模式 99
約束 99
for-select循環103
防止goroutine泄漏 104
or-channel 109
錯誤處理112
pipeline 116
構建pipeline的最佳實踐 120
一些便利的生成器 126
扇入,扇出 132
or-done-channel 137
tee-channel 139
橋接channel模式 140
隊列排隊143
context包 151
小結 168
第5章 大規模並發 169
異常傳遞169
超時和取消 178
心跳 184
復制請求197
速率限制199
治愈異常的goroutine 215
小結 222
第6章 goroutine和Go語言運行時 223
工作竊取223
竊取任務還是續體 231
向開發人員展示所有這些信息 240
尾聲 240
附錄A 241
序言
前言
嘿,歡迎閱讀本書!很高興你已經拿起這本書開始閱讀,非常期待在接下來的6章中和你一起探索關於 Go語言並發編程的主題。
Go語言是一種美妙的語言。當它被創造並首次公開的時候,我帶著極大的興趣探索它:簡潔、編譯速度飛快、運行穩定、支持鴨子類型(ducktyping),讓我高興的是,它原生支持並發。當我第一次使用“go 關鍵字”創建一個goroutine的時候,(我保證)我開心得只剩傻笑了。我曾經用其他一些編程語言寫過並發程序,但我從未用過像Go語言這樣這麽容易實現並發的語言(我並不是說其他有這種特性的語言不存在,只是我沒用過)。我已經找到了我的Go語言最佳實踐。
在過去的幾年裏,我用Go語言寫個人的腳本和項目,直到發現自己已經可以在成千上萬行代碼的項目中暢遊。隨著語言的不斷發展和社區的不斷壯大,我們一起找到了Go語言並發編程的最佳實踐。一些人就他們找到的模式進行討論,但在社區裏還沒有如何使用Go語言並發編程的綜合指南。
正是考慮到這一點,我才決定寫這本書。我希望可以讓社區了解到關於Go語言並發編程的一些全面且高質量的信息:如何使用,最佳實踐,以及如何將它集成到你的系統中,還有它背後的工作原理。我竭盡全力均衡這些關註點。我希望這是一本對你有益的書。
Katherine Cox-Buday是一名計算機科學家,目前工作於 Simple online banking。她的業余愛好包括軟件工程、創作、Go 語言(igo、baduk、weiquei) 以及音樂,這些都是她長期的追求,並且有著不同層面的貢獻。
目錄
前言 1
第1章 並發概述 9
摩爾定律,Web Scale和我們所陷入的混亂 10
為什麽並發很難? 12
競爭條件 13
原子性 15
內存訪問同步 17
死鎖、活鎖和饑餓 20
確定並發安全 28
面對復雜性的簡單性 31
第2章 對你的代碼建模:通信順序進程 33
並發與並行的區別 33
什麽是CSP 37
如何幫助你 40
Go語言的並發哲學 43
第3章 Go語言並發組件 47
sync包 58
WaitGroup 58
互斥鎖和讀寫鎖 60
cond 64
once 69
池 71
channel 76
select 語句 92
GOMAXPROCS控制 97
小結 98
第4章 Go語言的並發模式 99
約束 99
for-select循環103
防止goroutine泄漏 104
or-channel 109
錯誤處理112
pipeline 116
構建pipeline的最佳實踐 120
一些便利的生成器 126
扇入,扇出 132
or-done-channel 137
tee-channel 139
橋接channel模式 140
隊列排隊143
context包 151
小結 168
第5章 大規模並發 169
超時和取消 178
心跳 184
復制請求197
速率限制199
治愈異常的goroutine 215
小結 222
第6章 goroutine和Go語言運行時 223
工作竊取223
竊取任務還是續體 231
向開發人員展示所有這些信息 240
尾聲 240
附錄A 241
序言
前言
嘿,歡迎閱讀本書!很高興你已經拿起這本書開始閱讀,非常期待在接下來的6章中和你一起探索關於 Go語言並發編程的主題。
Go語言是一種美妙的語言。當它被創造並首次公開的時候,我帶著極大的興趣探索它:簡潔、編譯速度飛快、運行穩定、支持鴨子類型(ducktyping),讓我高興的是,它原生支持並發。當我第一次使用“go 關鍵字”創建一個goroutine的時候,(我保證)我開心得只剩傻笑了。我曾經用其他一些編程語言寫過並發程序,但我從未用過像Go語言這樣這麽容易實現並發的語言(我並不是說其他有這種特性的語言不存在,只是我沒用過)。我已經找到了我的Go語言最佳實踐。
正是考慮到這一點,我才決定寫這本書。我希望可以讓社區了解到關於Go語言並發編程的一些全面且高質量的信息:如何使用,最佳實踐,以及如何將它集成到你的系統中,還有它背後的工作原理。我竭盡全力均衡這些關註點。我希望這是一本對你有益的書。
PDF下載鏈接: https://pan.baidu.com/s/1kiM5x8nijwh3D18ZmgERsg 提取碼: 9eqt
最新IT書籍推介《Go語言並發之道》