中图网(原中国图书网):网上书店,尾货特色书店,30万种特价书低至2折!

歡迎光臨中圖網 請 | 注冊
> >>
深入理解Go并發編程 從原理到實踐,看這本就夠了

包郵 深入理解Go并發編程 從原理到實踐,看這本就夠了

出版社:電子工業出版社出版時間:2023-11-01
開本: 16開 頁數: 416
中 圖 價:¥110.6(7.0折) 定價  ¥158.0 登錄后可看到會員價
加入購物車 收藏
開年大促, 全場包郵
?新疆、西藏除外
本類五星書更多>

深入理解Go并發編程 從原理到實踐,看這本就夠了 版權信息

  • ISBN:9787121466465
  • 條形碼:9787121466465 ; 978-7-121-46646-5
  • 裝幀:平裝-膠訂
  • 冊數:暫無
  • 重量:暫無
  • 所屬分類:>>

深入理解Go并發編程 從原理到實踐,看這本就夠了 本書特色

● 全面。本書詳細介紹了Go標準庫中的每一個同步原語,并且補充介紹了Go官方擴展庫的同步原語,以及很多第三方的并發庫。本書還全面介紹了基于etcd的分布式同步原語,讀者在開發分布式程序的時候它很有參考價值。本書還梳理了Go并發模式,讀者可以系統性地了解采用并發模式要解決的問題。 ● 由淺入深。每個同步原語一開始都會介紹其使用場景和基本的使用方法,很多同步原語都會介紹其實現,讀者可以深入了解同步原語背后的原理。書中有作者多年開發經驗的總結和梳理,讓讀者少走彎路。 ● 實戰。書中包含大量的示例,獨創性地梳理了同步原語使用陷阱,還專門列出了知名項目如Kubernetes、Docker、gRPC等項目中出現的并發錯誤,讓讀者切身感受到知名項目的有經驗的Go程序員也會犯的錯。 ● 獨立。各章之間沒有依賴性,每一章都是獨立的,讀者可以從任意一章開始進行學習。正如“極客時間”的一位讀者所說,課程需要反復學幾遍才能理解透,所以希望讀者也能勤翻一翻本書,多學習幾遍,把相關知識掌握透徹。 晁岳攀老師是國內公認的Go語言大師,他對Go語言的研究和貢獻深得開發者喜愛。記得在GopherChina大會上,晁老師做的關于Go并發編程的分享廣受好評。如今,晁老師將他對Go并發編程的獨到見解融入本書中,令人萬分期待!雖然并發編程是一個極具挑戰性的領域,但晁老師以他一貫的通俗易懂的風格闡釋復雜的并發概念,讓讀者在輕松愉悅中掌握Go語言強大的并發能力。本書將成為Go語言并發編程的經典入門讀物。 ——謝孟軍(Astaxie),積夢智能CEO,GopherChina發起人 本書以圖文并茂的方式講解Go語言并發編程,讓讀者能夠真正看得懂、學得會、用得好。鳥窩大佬的不少文章皆通俗易懂,該書亦是如此。 ——徐新華(polarisxu),Go語言中文網站長 鳥窩老師的這本書是目前Go領域講并發頗為深入的材料,幾乎覆蓋了所有Go語言的并發原語原理和使用指南。如果大家想要用Go來深入了解并發知識,有這本書就夠了。 ——曹春暉(Xargin),資深Gopher 這是一本非常具有指導性的書,旨在幫助讀者從根本上理解并發,并逐步學習并發編程。從第1章開始,本書就通過風趣的案例解釋了并發的概念,內容簡單易懂。特別是“鳥窩客!边@個案例給我留下了深刻的印象。 ——楊文,Go夜讀創始人 鳥窩老師在本書中深入淺出地剖析了Go語言的并發編程,內容豐富,案例翔實,是學習Go并發編程的好讀物。對Go語言感興趣的讀者,一定不能錯過這本優秀的書。 ——白明(Tony Bai),《Go語言精進之路》作者,tonybai.com博主 Go語言入門容易,精通難,尤其是并發部分!對于希望深入學習Go并發的開發者來說,這本書可以讓你深入理解Go并發易用性背后的實現原理。 ——萬俊峰,go-zero微服務框架作者,資深Gopher和Go語言布道師

深入理解Go并發編程 從原理到實踐,看這本就夠了 內容簡介

本書分為四大部分。第1部分包括第1~13章,主要介紹Go標準庫的同步原語,包括互斥鎖Mutex、讀寫鎖RWMutex、WaitGroup、條件變量Cond、Once、Map、Pool、Context、channel等,以及近期新的原子操作知識,其中重點介紹了channel,*后還介紹了Go的內存模 型。第2部分包括第14~18章,主要介紹Go官方的擴展庫和第三方的同步原語,包括信號量、SingleFlight、CyclicBarrier、分組操作庫、限流庫等。第3部分包括第19章,主要介紹基于etcd的分布式同步(并發)原語。第4部分包括第20章和第21章,主要歸納總結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.1 P/V 操作
14.1.2 信號量和互斥鎖的區別與聯系
14.2 信號量的 channel 實現
14.3 Go官方的信號量實現
14.4 使用信號量的常見錯誤

第15章 緩解壓力利器 SingleFlight
15.1 SingleFlight的實現
15.2 SingleFlight的使用場景

第16章 循環屏障 CyclicBarrier
16.1 CyclicBarrier的使用場景
16.2 CyclicBarrier的實現
16.3 使用 CyclicBarrier的例子

第17章 分組操作
17.1 ErrGroup
17.1.1 ErrGroup的基本用法
17.1.2 ErrGroup 使用示例
17.2 其他實用的 Group 同步原語
17.2.1 SizedGroup/ErrSizedGroup
17.2.2 gollback
17.2.3 Hunch
17.2.4 schedgroup

第18章 限流
18.1 基于令牌桶實現的限流庫
18.1.1 x/time/rate
18.1.2 juju/ratelimit
18.2 基于漏桶實現的限流庫
18.3 分布式限流

第19章 Go并發編程和調度器
19.1 Leader 選舉
19.1.1 選舉
19.1.2 查詢
19.1.3 監控
19.2 鎖 Locker
19.3 互斥鎖 Mutex
19.4 讀寫鎖 RWMutex
19.5 分布式隊列和優先級隊列
19.6 分布式屏障
19.7 計數型屏障
19.8 軟件事務內存

第20章 并發模式
20.1 并發模式概述
20.2 半異步/半同步模式
20.3 活動對象模式
20.4 斷路器模式
20.5 截止時間和超時模式
20.6 回避模式
20.7 雙重檢查模式
20.8 保護式掛起模式
20.9 核反應模式
20.10 調度器模式
20.11 反應器模式
20.12 Proactor模式
20.13 percpu模式
20.14 多進程模式

第21章 經典并發問題解析
21.1 哲學家就餐問題
21.1.1 模擬哲學家就餐問題
21.1.2 解法一:限制就餐人數
21.1.3 解法二:奇偶處理方法
21.1.4 解法三:資源分級
21.1.5 解法四:引入服務生
21.2 理發師問題
21.2.1 使用 sync.Cond 解決理發師問題
21.2.2 使用 channel 實現信號量
21.2.3 有多個理發師的情況
21.3 水工廠問題
21.4 fizz buzz 問題
21.4.1 將并發轉為串行
21.4.2 使用同一個channel
21.4.3 使用CyclicBarrier
展開全部

深入理解Go并發編程 從原理到實踐,看這本就夠了 作者簡介

晁岳攀(@鳥窩),rpcx微服務框架作者,Go語言布道師,技術專欄作家。

商品評論(0條)
暫無評論……
書友推薦
返回頂部
中圖網
在線客服
主站蜘蛛池模板: 注浆压力变送器-高温熔体传感器-矿用压力传感器|ZHYQ朝辉 | 肉嫩度仪-凝胶测试仪-国产质构仪-气味分析仪-上海保圣实业发展有限公司|总部 | 黑田精工电磁阀-CAMMOZI气缸-ROSS电磁-上海茂硕机械设备有限公司 | 组织研磨机-高通量组织研磨仪-实验室多样品组织研磨机-东方天净 传递窗_超净|洁净工作台_高效过滤器-传递窗厂家广州梓净公司 | 耐高温风管_耐高温软管_食品级软管_吸尘管_钢丝软管_卫生级软管_塑料波纹管-东莞市鑫翔宇软管有限公司 | 箱式破碎机_移动方箱式破碎机/价格/厂家_【华盛铭重工】 | 阳光1号桔柚_无核沃柑_柑橘新品种枝条苗木批发 - 苧金网 | 东莞韩创-专业绝缘骨架|马达塑胶零件|塑胶电机配件|塑封电机骨架厂家 | 恒压供水控制柜|无负压|一体化泵站控制柜|PLC远程调试|MCGS触摸屏|自动控制方案-联致自控设备 | 郑州宣传片拍摄-TVC广告片拍摄-微电影短视频制作-河南优柿文化传媒有限公司 | 全屋整木定制-橱柜,家具定制-四川峨眉山龙马木业有限公司 | 数码听觉统合训练系统-儿童感觉-早期言语评估与训练系统-北京鑫泰盛世科技发展有限公司 | CE认证_产品欧盟ROHS-REACH检测机构-商通检测 | 护栏打桩机-打桩机厂家-恒新重工| 防爆鼓风机-全风-宏丰鼓风机-上海梁瑾机电设备有限公司 | 大型低温冷却液循环泵-低温水槽冷阱「厂家品牌」京华仪器_京华仪器 | 高清视频编码器,4K音视频编解码器,直播编码器,流媒体服务器,深圳海威视讯技术有限公司 | 青岛代理记账_青岛李沧代理记账公司_青岛崂山代理记账一个月多少钱_青岛德辉财税事务所官网 | 上海办公室装修公司_办公室设计_直营办公装修-羚志悦装 | 施工电梯_齿条货梯_烟囱电梯_物料提升机-河南大诚机械制造有限公司 | 金联宇电缆|广东金联宇电缆厂家_广东金联宇电缆实业有限公司 | 车间除尘设备,VOCs废气处理,工业涂装流水线,伸缩式喷漆房,自动喷砂房,沸石转轮浓缩吸附,机器人喷粉线-山东创杰智慧 | 非甲烷总烃分析仪|环控百科 | 上海皓越真空设备有限公司官网-真空炉-真空热压烧结炉-sps放电等离子烧结炉 | 金现代信息产业股份有限公司--数字化解决方案供应商 | 立式壁挂广告机厂家-红外电容触摸一体机价格-华邦瀛 | 国产离子色谱仪,红外分光测油仪,自动烟尘烟气测试仪-青岛埃仑通用科技有限公司 | LZ-373测厚仪-华瑞VOC气体检测仪-个人有毒气体检测仪-厂家-深圳市深博瑞仪器仪表有限公司 | 广州网站建设_小程序开发_番禺网站建设_佛山网站建设_粤联网络 | 2025世界机器人大会_IC China_半导体展_集成电路博览会_智能制造展览网 | 名律网-法律问题咨询-找律师-法律知识| 好物生环保网、环保论坛 - 环保人的学习交流平台 | 警用|治安|保安|不锈钢岗亭-售货亭价格-垃圾分类亭-移动厕所厂家-苏州灿宇建材 | 半自动预灌装机,卡式瓶灌装机,注射器灌装机,给药器灌装机,大输液灌装机,西林瓶灌装机-长沙一星制药机械有限公司 | 温州食堂承包 - 温州市尚膳餐饮管理有限公司 | 罗氏牛血清白蛋白,罗氏己糖激酶-上海嵘崴达实业有限公司 | 冷库安装厂家_杭州冷库_保鲜库建设-浙江克冷制冷设备有限公司 | 设定时间记录电子秤-自动累计储存电子秤-昆山巨天仪器设备有限公司 | 深圳货架厂_仓库货架公司_重型仓储货架_线棒货架批发-深圳市诺普泰仓储设备有限公司 | 变压器配件,变压器吸湿器,武强县吉口变压器配件有限公司 | 合肥宠物店装修_合肥宠物美容院装修_合肥宠物医院设计装修公司-安徽盛世和居装饰 |