-
>
全國計算機等級考試最新真考題庫模擬考場及詳解·二級MSOffice高級應用
-
>
決戰行測5000題(言語理解與表達)
-
>
軟件性能測試.分析與調優實踐之路
-
>
第一行代碼Android
-
>
JAVA持續交付
-
>
EXCEL最強教科書(完全版)(全彩印刷)
-
>
深度學習
Go語言中的高效并發技術 版權信息
- ISBN:9787302659747
- 條形碼:9787302659747 ; 978-7-302-65974-7
- 裝幀:平裝-膠訂
- 冊數:暫無
- 重量:暫無
- 所屬分類:>>
Go語言中的高效并發技術 本書特色
一旦完成了本書中提供的所有示例,就會對使用并發解決問題更有信心。每個人都在抱怨并發很難,但是,正確使用語言將使開發人員可以更輕松地生成正確的程序。你應該永遠記住的經驗法則是:正確性優先于性能。因此,我們首先要讓它正常工作,然后才能讓它更快地工作。
Go語言中的高效并發技術 內容簡介
《Go語言中的高效并技術》詳細闡述了與Go語言并發技術相關的基本知識,主要包括并發—高級概述、Go并發原語、Go內存模型、一些眾所周知的并發問題、工作池和管道、錯誤和恐慌處理、Timer和Ticker、并發處理請求、原子內存操作、解決并發問題等內容。此外,本書還提供了相應的示例、代碼,以幫助讀者進一步理解相關方案的實現過程。 本書適合作為高等院校計算機及相關專業的教材和教學參考書,也可作為相關開發人員的自學用書和參考手冊。
Go語言中的高效并發技術 目錄
1.1 技術要求 1
1.2 并發和并行 1
1.3 共享內存與消息傳遞 8
1.3.1 共享內存 8
1.3.2 消息傳遞 10
1.4 原子性、競爭、死鎖和饑餓 11
1.4.1 競爭 11
1.4.2 原子性 13
1.4.3 死鎖 15
1.4.4 饑餓 17
1.5 程序的屬性 20
1.6 小結 21
1.7 思考題 22
1.8 延伸閱讀 22
第2章 Go并發原語 23
2.1 技術要求 23
2.2 goroutine基礎知識 23
2.2.1 進程 23
2.2.2 線程 24
2.2.3 調度程序 24
2.2.4 goroutine 24
2.2.5 線程和goroutine之間的區別 25
2.2.6 goroutine的運行研究 25
2.2.7 閉包 28
2.2.8 停止正在運行的goroutine 30
2.2.9 Go運行時管理goroutine的方式 30
2.3 通道和select語句 31
2.3.1 聲明通道 32
2.3.2 發送和接收值 32
2.3.3 通道的初始化和關閉 33
2.3.4 無緩沖通道 35
2.3.5 使用單向通道 37
2.3.6 使用多個goroutine和通道協調工作 37
2.3.7 select語句 39
2.4 互斥體 45
2.5 等待組 50
2.6 條件變量 52
2.7 小結 57
2.8 思考題 57
第3章 Go內存模型 59
3.1 關于內存模型 59
3.2 內存操作之間的happened-before關系 60
3.3 Go并發原語的同步特性 63
3.3.1 包初始化 63
3.3.2 goroutine 64
3.3.3 通道 64
3.3.4 互斥體 66
3.3.5 原子內存操作 67
3.3.6 Map、Once和WaitGroup 68
3.4 小結 69
3.5 延伸閱讀 70
第4章 一些眾所周知的并發問題 71
4.1 技術要求 71
4.2 生產者-消費者問題 71
4.3 哲學家就餐問題 75
4.4 速率限制 80
4.5 小結 87
第5章 工作池和管道 89
5.1 技術要求 89
5.2 工作池 89
5.3 管道、扇出和扇入 95
5.3.1 簡單管道示例 95
5.3.2 同步管道 97
5.3.3 異步管道 98
5.3.4 扇出/扇入 100
5.3.5 有序扇入 105
5.4 小結 109
5.5 思考題 110
第6章 錯誤和恐慌處理 111
6.1 錯誤處理機制 111
6.1.1 常見錯誤處理模式 112
6.1.2 常見錯誤處理模式的變體 115
6.1.3 管道 117
6.1.4 服務器 117
6.2 恐慌 118
6.3 小結 121
第7章 Timer和Ticker 123
7.1 技術要求 123
7.2 Timer—稍后運行一些東西 123
7.3 Ticker—定期運行一些東西 126
7.4 心跳 128
7.5 小結 130
第8章 并發處理請求 131
8.1 技術要求 131
8.2 上下文、取消和超時 131
8.2.1 上下文 132
8.2.2 取消 132
8.2.3 超時 134
8.2.4 處理上下文中的值 135
8.3 后端服務 137
8.3.1 構建一個簡單的TCP服務器 137
8.3.2 容器化后端服務 139
8.3.3 構建一個簡單的HTTP服務 140
8.3.4 分配工作和收集結果 142
8.3.5 信號量—限制并發 145
8.4 流傳輸數據 146
8.4.1 構建一個流傳輸應用程序 146
8.4.2 處理多個流 155
8.5 小結 160
第9章 原子內存操作 161
9.1 技術要求 161
9.2 原子內存操作的內存保證 161
9.3 比較和交換操作 163
9.4 原子的實際用途 164
9.4.1 計數器 164
9.4.2 心跳和進度表 165
9.4.3 取消 168
9.4.4 檢測變化 169
9.5 小結 169
第10章 解決并發問題 171
10.1 技術要求 171
10.2 解讀堆棧跟蹤信息 171
10.2.1 哲學家進餐程序的死鎖問題 171
10.2.2 鏈表指針問題 174
10.3 檢測故障并修復 176
10.3.1 正確認識失敗 177
10.3.2 找出失敗的原因 177
10.3.3 嘗試從失敗中恢復 182
10.4 調試異常 183
10.5 小結 185
10.6 延伸閱讀 185
Go語言中的高效并發技術 作者簡介
Burak Serdar是一位軟件工程師,在設計和開發可擴展的分布式企業應用程序方面擁有 30多年的經驗。他曾在多家初創公司和大型公司(包括Thomson和Red Hat)擔任工程師和技術主管。他是Cloud Privacy Labs的聯合創始人之一,致力于中心式和去中心化系統的語義互操作性和隱私技術。Burak擁有電氣和電子工程學士學位和碩士學位,以及計算機科學碩士學位。
- >
有舍有得是人生
- >
巴金-再思錄
- >
伊索寓言-世界文學名著典藏-全譯本
- >
大紅狗在馬戲團-大紅狗克里弗-助人
- >
經典常談
- >
月亮與六便士
- >
山海經
- >
苦雨齋序跋文-周作人自編集