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

歡迎光臨中圖網 請 | 注冊

包郵 深入理解GO語言

作者:劉丹冰
出版社:清華大學出版社出版時間:2023-04-01
開本: 其他 頁數: 479
中 圖 價:¥85.7(7.2折) 定價  ¥119.0 登錄后可看到會員價
加入購物車 收藏
開年大促, 全場包郵
?新疆、西藏除外
本類五星書更多>

深入理解GO語言 版權信息

深入理解GO語言 本書特色

系統講解Go語言的GMP模型、垃圾回收、Goroutine等語言特性和實現原理,從實踐的角度出發,系統講解框架設計的方方面面,讓讀者通過一個實際的項目深入淺出地掌握Go語言看似簡單,實則深奧的技術難點。本書的每個章節專題所描述的知識點和知識點之間具備流暢的銜接,遵循知識點吸收的三步法:“為什么這樣?”“這樣會如何?”“所以才這樣。”的抽象編寫架構。 深入講解Go語言的原理及關鍵技術點,以圖文的方式介紹 Go語言的設計思路,通俗易懂★Go語言越來越被廣大開發者所關注和應用,開源中國Gitee本著開源理念,每年會為IT開發者收錄很多優質的Go開源作品。《深入理解Go語言》書中的開源服務框架Zinx曾被開源中國Gitee于2019年評為年度*有價值開源項目。本書結構迭代遞進,能夠讓讀者循序漸進地學習完整的框架構建。 ——紅薯 開源中國&Gitee創始人★《深入理解Go語言》是一本深入淺出理解整個Go語言內核設計思想和實現的一本高質量技術書,看完本書你會發現作者劉丹冰老師對整個Go語言的理解深度,特別適合有一定Go語言基礎并且想深入了解Go語言運行機制的計算機從業者進行學習。讀完本書相信Go語言從業者一定會對Go語言的內核機制了如指掌,對于其他愛好者也一定會有所收獲。 ——謝華亮(黑夜路人) CSDN博客技術專家、好未來技術委員會服務通道主席 ★很早之前就在社區聽過Zinx框架,該框架在高性能服務中有著優越的表現。這一次丹冰花大量時間寫出來的這本關于Go語言框架設計和實現原理的書非常不容易,推薦給想深入了解TCP服務和設計的讀者,對深入了解Go語言如何實現高性能服務框架有很大的幫助。 ——謝孟軍 上海積夢智能科技有限公司CEO、GoCN社區負責人★《深入理解Go語言》系統講解 Go 語言的GMP 模型、垃圾回收、Goroutine等語言特性和實現原理,并通過Zinx開源項目深入剖析 Go 語言的底層技術細節,從實踐的角度出發,系統講解框架設計的方方面面,讓讀者通過一個實際的項目深入淺出地掌握 Go 語言看似簡單,實則深奧的技術難點,值得推薦! ——萬俊峰(Kevin) go-zero作者 ★國內Go社區不斷涌現出大量優秀的技術人員,劉丹冰就是其中一位。也許你對這個名字不熟悉,但不少人應該對電子書《Golang修養之路》熟悉。2020 年,Go語言中文網轉載過他的幾篇 Go 語言的文章,圖文并茂,通俗易懂。《深入理解Go語言》與現有市面上進階Go語言圖書不同,本書更多地以圖文的方式講解 Go語言的設計思路,而不是在源碼級別摳細節,更有利于大家學習與理解。此外,本書還講解了如何從 0 到 1 構建TCP 框架Zinx,值得 Go語言愛好者擁有! ——徐新華(Polaris) Go語言中文網站長 ★Go語言作為新生代服務器端計算機編程語言,被越來越多企業的生產環境所應用。《深入理解Go語言》重點介紹Go語言學習過程中應重點掌握的知識,內容深入淺出,構建知識體系曲線遞進。如果你具備一定編程基礎并想了解Go語言的精髓,則本書毫無疑問是一個很好的選擇。 ——Chris Tang 微軟LinkedInContent Product ManagerLead ★本書開篇就介紹了 GPM 模型,后續也講解了很多 Go 語言的理論精髓。雖然對于新手直接從開篇閱讀比較難,但是如果你能夠從后往前閱讀,先實踐再剖析語言理論,可能不失為一種很好的閱讀本書的方法。 ——楊文 “Go夜讀”創始人

深入理解GO語言 內容簡介

本書為深入理解學習Go語言必經之路中的重點知識領域,采用大量精美詳細的圖文介紹,文章講解深入淺出,極大降低了理解Golang底層精髓的學習門檻。 本書包含3篇:**篇為深度理論篇(第1章~第4章),包含深入理解Golang中GPM模型、深入理解Golang垃圾回收GC三色標記與混合寫屏障、深入理解Golang內存管理模型、網絡IO復用模型等。第二篇為Golang實戰中需要進階的知識盲區介紹(第5章~第12章)。第三篇為基于Golang從0到1的實現輕量級網絡服務框架Zinx及相關應用案例。 本書主要的面向讀者是已經具有軟件編程開發經驗的工程師、系統開發工程師、期望由Python、PHP、C/C++、Ruby、Java等編程語言轉職到Golang開發的后端工程師、期望深入理解Go語言特性的計算機軟件學者等。

深入理解GO語言 目錄

**篇Go語言修煉必經之路



第1章深入理解Go語言協程調度器GPM模型


1.1Go語言“調度器”的由來


1.1.1單進程時代不需要調度器


1.1.2多進程/多線程時代的調度器需求


1.1.3協程提高CPU的利用率


1.1.4Go語言的協程Goroutine


1.1.5被廢棄的Goroutine調度器


1.2Go語言調度器GPM模型的設計思想


1.2.1GPM模型


1.2.2調度器的設計策略


1.2.3go func() 調度流程


1.2.4調度器的生命周期


1.2.5可視化GPM編程


1.3Go調度器調度場景過程全解析


1.3.1場景1: G1創建G2


1.3.2場景2: G1執行完畢


1.3.3場景3: G2開辟過多的G


1.3.4場景4: G2本地滿再創建G7


1.3.5場景5: G2本地未滿再創建G8


1.3.6場景6: 喚醒正在休眠的M


1.3.7場景7: 被喚醒的M2從全局隊列批量取G


1.3.8場景8: M2從M1中偷取


1.3.9場景9: 自旋線程的*大限制


1.3.10場景10: G發生阻塞的系統調用


1.3.11場景11: G發生非阻塞的系統調用


1.4小結


第2章Go語言混合寫屏障的GC全場景分析


2.1Go V1.3標記清除算法


2.1.1標記清除(Mark and Sweep)算法的詳細過程


2.1.2標記清除算法的缺點


2.2Go V1.5的三色標記法


2.2.1三色標記法的過程


2.2.2沒有STW的三色標記法


2.2.3觸發三色標記法不安全的必要條件


2.3Go V1.5 的屏障機制


2.3.1“強弱”三色不變式


2.3.2插入屏障


2.3.3刪除屏障


2.4Go V1.8的混合寫屏障


2.4.1混合寫屏障(Hybrid Write Barrier)規則


2.4.2場景1: 堆刪除引用,成為棧下游


2.4.3場景2: 棧刪除引用,成為棧下游


2.4.4場景3: 堆刪除引用,成為堆下游


2.4.5場景4: 棧刪除引用,成為堆下游


2.5小結


第3章Go語言內存管理洗髓經


3.1何為內存


3.2內存為什么需要管理


3.3操作系統是如何管理內存的


3.3.1虛擬內存


3.3.2MMU內存管理單元


3.3.3虛擬內存本身怎么存放


3.3.4CPU內存訪問過程


3.3.5內存的局部性


3.4如何用Go語言實現內存管理和內存池設計


3.4.1基于Cgo的內存C接口封裝


3.4.2基礎內存緩沖Buf實現


3.4.3內存池設計與實現


3.4.4內存池的功能單元測試


3.4.5內存管理應用接口


3.5Go語言內存管理之魂TCMalloc


3.5.1TCMalloc


3.5.2TCMalloc模型相關基礎結構


3.5.3ThreadCache


3.5.4CentralCache


3.5.5PageHeap


3.5.6TCMalloc的小對象分配


3.5.7TCMalloc的中對象分配


3.5.8TCMalloc的大對象分配


3.6Go語言堆內存管理


3.6.1Go語言內存模型層級結構


3.6.2Go語言內存管理單元相關概念


3.6.3MCache


3.6.4MCentral


3.6.5MHeap


3.6.6Tiny對象分配流程


3.6.7小對象分配流程


3.6.8大對象分配流程


3.7小結


第4章深入理解Linux網絡I/O復用并發模型


4.1網絡并發模型中的幾個基本概念


4.1.1流


4.1.2I/O操作


4.1.3阻塞等待


4.1.4非阻塞忙輪詢


4.1.5阻塞與非阻塞對比


4.2解決阻塞等待缺點的辦法


4.2.1阻塞死等待的缺點


4.2.2解決阻塞等待的辦法1: 多線程/多進程


4.2.3解決阻塞等待的辦法2: 非阻塞忙輪詢


4.2.4解決阻塞等待的辦法3: select


4.2.5解決阻塞等待的辦法4: epoll


4.3什么是epoll


4.4epoll的觸發模式


4.4.1水平觸發


4.4.2邊緣觸發


4.5簡單的epoll服務器


4.5.1服務器端實現


4.5.2客戶端實現


4.6Linux下常見的網絡I/O復用并發模型


4.6.1模型1: 單線程Accept(無I/O復用)


4.6.2模型2: 單線程Accept+多線程讀寫業務(無I/O復用)


4.6.3模型3: 單線程多路I/O復用


4.6.4模型4: 單線程多路I/O復用+多線程讀寫業務(業務工作池)


4.6.5模型5: 單線程I/O復用+多線程I/O復用(連接線程池)


4.6.6模型5(進程版): 單進程多路I/O復用+多進程I/O復用


4.6.7模型6: 單線程多路I/O復用+多線程I/O復用+多線程


4.7小結


第二篇Go語言編程進階之路



第5章有關Goroutine無限創建的分析


5.1從操作系統分析進程、線程、協程的區別


5.1.1進程內存


5.1.2線程內存


5.1.3執行單元


5.2協程的切換成本


5.2.1協程切換成本


5.2.2線程切換成本


5.2.3內存占用


5.3Go是否可以無限創建,如何限定數量


5.3.1不控制Goroutine數量引發的問題


5.3.2一些簡單方法控制Goroutine的數量


5.4動態保活Worker工作池設計


5.4.1如何確定一個Goroutine已經死亡


5.4.2Worker工作池的設計


5.4.3測試Worker工作池


5.5小結


第6章Go語言中的逃逸現象,變量“何時在棧、何時在堆”


6.1Go語言中的逃逸現象


6.1.1Go語言中訪問子函數的局部變量


6.1.2C/C++中訪問子函數的局部變量


6.2逃逸分析過程示例


6.2.1示例過程


6.2.2new的變量在棧還是堆


6.3普遍的逃逸規則


6.3.1逃逸范例1


6.3.2逃逸范例2


6.3.3逃逸范例3


6.3.4逃逸范例4


6.3.5逃逸范例5


6.3.6逃逸范例6


6.3.7逃逸范例7


6.3.8逃逸范例8


6.4小結


第7章interface剖析與Go語言中面向對象思想


7.1interface的賦值問題


7.2非空接口的interface內部構造


7.2.1案例分析


7.2.2空接口eface


7.2.3非空接口iface


7.3空接口的interface內部構造


7.4interface{}與*interface{}


7.5面向對象思維理解interface


7.5.1平鋪式的模塊設計


7.5.2面向對象中的開閉原則


7.5.3接口的意義


7.5.4耦合度極高的模塊關系設計


7.5.5面向抽象層依賴倒轉設計


7.6小結


第8章defer踐行中**的要領


8.1defer的執行順序


8.2defer與return誰先誰后


8.3函數返回值的初始化


8.4有名函數返回值遇見defer的情況


8.5defer遇見panic


8.5.1defer遇見panic,但是并不捕獲異常的情況


8.5.2defer遇見panic,并捕獲異常


8.6defer中包含panic


8.7defer下的函數參數包含子函數


8.8小結


第9章Go語言中常用的問題及性能調試實踐方法


9.1如何分析程序的運行時間與CPU利用率


9.1.1shell內置time指令


9.1.2/usr/bin/time指令


9.2如何分析Go語言程序的內存使用情況


9.2.1占用內存情況查看


9.2.2GODEBUG與gctrace


9.2.3runtime.ReadMemStats


9.2.4pprof工具


9.3如何獲取Go語言程序的CPU性能情況


9.3.1通過Web界面查看且得到profile文件


9.3.2使用pprof工具獲取信息


9.3.3profile文件獲取信息


9.3.4可視化圖形查看及分析


9.4小結


第10章make和new的原理性區別


10.1變量的聲明


10.2Go語言中make與new的區別


10.2.1new


10.2.2make


10.2.3make與new的異同


10.3slice與new關鍵字


10.4小結


第11章精通Go Modules項目依賴管理


11.1GOPATH的工作模式


11.1.1什么是GOPATH


11.1.2GOPATH模式的弊端


11.2Go Modules模式


11.2.1go mod命令


11.2.2go mod環境變量


11.2.3GO111MODULE


11.2.4GOPROXY


11.2.5direct


11.2.6GOSUMDB


11.2.7GONOPROXY/GONOSUMDB/GOPRIVATE


11.3使用Go Modules初始化項目


11.3.1開啟Go Modules


11.3.2初始化項目


11.3.3查看go.mod文件


11.3.4查看go.sum文件


11.4修改模塊的版本依賴關系


11.5小結


第12章ACID、CAP、BASE的分布式理論推進


12.1從本地事務到分布式理論


12.2ACID理論


12.3CAP理論


12.3.1一致性


12.3.2可用性


12.3.3分區容錯性


12.4CAP的“3選2”證明


12.4.1基本場景


12.4.2CAP特性


12.4.3分布式系統正常運行流程


12.4.4分布式系統異常運行流程


12.4.5“3選2”的必然性


12.5分布式BASE理論


12.6小結


第三篇Go語言框架設計之路



第13章Zinx框架基礎服務構建


13.1初探Zinx架構


13.2ZinxV0.1基礎服務


13.2.1ZinxV0.1 代碼實現


13.2.2Zinx框架單元測試樣例


13.2.3使用ZinxV0.1完成應用程序


13.3ZinxV0.2簡單的連接封裝與業務綁定


13.3.1ZinxV0.2代碼實現


13.3.2使用ZinxV0.2完成應用程序


13.4小結


第14章Zinx框架路由模塊設計與實現


14.1IRequest 消息請求抽象類


14.1.1創建抽象IRequest層


14.1.2實現Request類


14.2IRouter 路由配置抽象類


14.2.1創建抽象的IRouter層


14.2.2實現Router類


14.3ZinxV0.3集成簡單路由功能


14.3.1IServer增添路由添加功能


14.3.2Server類增添Router成員


14.3.3Connection類綁定一個Router成員


14.3.4在Connection調用注冊的Router處理業務


14.4Server傳遞Router參數Connection


14.5使用ZinxV0.3完成應用程序


14.5.1測試基于Zinx完成的服務器端應用


14.5.2啟動Server和Client


14.6小結


第15章Zinx全局配置


15.1ZinxV0.4增添全局配置代碼實現


15.2使用ZinxV0.4完成應用程序


15.3小結


第16章Zinx消息封裝模塊設計與實現


16.1創建消息封裝類型


16.2消息的封包與拆包


16.2.1創建拆包封包抽象類


16.2.2實現拆包封包類


16.2.3測試拆包封包功能


16.3ZinxV0.5代碼實現


16.3.1Request字段修改


16.3.2集成拆包過程


16.3.3提供封包的發送方法


16.3.4使用ZinxV0.5完成應用程序


16.4小結


展開全部

深入理解GO語言 作者簡介

劉丹冰(Aceld),Zinx(Golang輕量級TCP服務器開源框架)作者,現就職于好未來集團,擔任Golang架構師、服務器端專家。擁有多年互聯網、網絡安全、智能家居領域及分布式云服務研發經驗。曾就職于啟明星辰,從事網絡安全IDS(Intrusion Detection System,入侵檢測系統)、IPS(IntrusionPreventionSystem,入侵防御系統)等研發工作。參與過國家互聯網應急中心關口監測系統研發,并且擔任重要崗位。曾任Haier U+ SmartHome智能家居、智能電視服務研發工程師;傳智教育科技C/C++、Golang項目研究員,參與并創作過多部C/C++、Golang研發課程及項目;Golang、C/C++業務線教學科研負責人。

商品評論(0條)
暫無評論……
書友推薦
本類暢銷
編輯推薦
返回頂部
中圖網
在線客服
主站蜘蛛池模板: 智能门锁电机_智能门锁离合器_智能门锁电机厂家-温州劲力智能科技有限公司 | 北京律师事务所_房屋拆迁律师_24小时免费法律咨询_云合专业律师网 | 防爆暖风机_防爆电暖器_防爆电暖风机_防爆电热油汀_南阳市中通智能科技集团有限公司 | 电镀电源整流器_高频电解电源_单脉双脉冲电源 - 东阳市旭东电子科技 | B2B网站_B2B免费发布信息网站_B2B企业贸易平台 - 企资网 | 石膏基自流平砂浆厂家-高强石膏基保温隔声自流平-轻质抹灰石膏粉砂浆批发-永康市汇利建设有限公司 | 蓝莓施肥机,智能施肥机,自动施肥机,水肥一体化项目,水肥一体机厂家,小型施肥机,圣大节水,滴灌施工方案,山东圣大节水科技有限公司官网17864474793 | 岸电电源-60HZ变频电源-大功率变频电源-济南诚雅电子科技有限公司 | 胶原检测试剂盒,弹性蛋白检测试剂盒,类克ELISA试剂盒,阿达木单抗ELISA试剂盒-北京群晓科苑生物技术有限公司 | 学考网学历中心| 细胞染色-流式双标-试剂盒免费代做-上海研谨生物科技有限公司 | 镀锌钢格栅_热镀锌格栅板_钢格栅板_热镀锌钢格板-安平县昊泽丝网制品有限公司 | 深圳公司注册-工商注册公司-千百顺代理记账公司 | 混合气体腐蚀试验箱_盐雾/硫化氢/气体腐蚀试验箱厂家-北京中科博达 | WTB5光栅尺-JIE WILL磁栅尺-B60数显表-常州中崴机电科技有限公司 | 盐城网络公司_盐城网站优化_盐城网站建设_盐城市启晨网络科技有限公司 | 智慧旅游_智慧景区_微景通-智慧旅游景区解决方案提供商 | 团建-拓展-拓展培训-拓展训练-户外拓展训练基地[无锡劲途] | 济南网站建设_济南网站制作_济南网站设计_济南网站建设公司_富库网络旗下模易宝_模板建站 | 专业生物有机肥造粒机,粉状有机肥生产线,槽式翻堆机厂家-郑州华之强重工科技有限公司 | 进口便携式天平,外校_十万分之一分析天平,奥豪斯工业台秤,V2000防水秤-重庆珂偌德科技有限公司(www.crdkj.com) | 高压无油空压机_无油水润滑空压机_水润滑无油螺杆空压机_无油空压机厂家-科普柯超滤(广东)节能科技有限公司 | FAG轴承,苏州FAG轴承,德国FAG轴承-恩梯必传动设备(苏州)有限公司 | 武汉高温老化房,恒温恒湿试验箱,冷热冲击试验箱-武汉安德信检测设备有限公司 | 高通量组织研磨仪-多样品组织研磨仪-全自动组织研磨仪-研磨者科技(广州)有限公司 | 物和码官网,物和码,免费一物一码数字化营销SaaS平台 | 智能交通网_智能交通系统_ITS_交通监控_卫星导航_智能交通行业 | 武汉高低温试验箱_恒温恒湿试验箱厂家-武汉蓝锐环境科技有限公司 | 软瓷_柔性面砖_软瓷砖_柔性石材_MCM软瓷厂家_湖北博悦佳软瓷 | 电镀电源整流器_高频电解电源_单脉双脉冲电源 - 东阳市旭东电子科技 | 氧化铁红厂家-淄博宗昂化工 | 西门子气候补偿器,锅炉气候补偿器-陕西沃信机电工程有限公司 | 模具硅橡胶,人体硅胶,移印硅胶浆厂家-宏图硅胶科技 | 磁棒电感生产厂家-电感器厂家-电感定制-贴片功率电感供应商-棒形电感生产厂家-苏州谷景电子有限公司 | 活性氧化铝球|氧化铝干燥剂|分子筛干燥剂|氢氧化铝粉-淄博同心材料有限公司 | 磁力抛光研磨机_超声波清洗机厂家_去毛刺设备-中锐达数控 | 河南道路标志牌_交通路标牌_交通标志牌厂家-郑州路畅交通 | 翰香原枣子坊加盟费多少钱-正宗枣核糕配方培训利润高飘香 | 热闷罐-高温罐-钢渣热闷罐-山东鑫泰鑫智能热闷罐厂家 | 高温链条油|高温润滑脂|轴承润滑脂|机器人保养用油|干膜润滑剂-东莞卓越化学 | 宿舍管理系统_智慧园区系统_房屋/房产管理系统_公寓管理系统 |