
第一篇 Go语言修炼必经之路
“必经之路”为学习过程中作为Go语言工程师必须深入理解的知识领域,也是作为Go语言工程师走向成熟阶段的标志。本篇包含的章节均以Go语言语法类和Go语言特性为中心重点描述各个必备热点问题。学习本篇内容需具备一定的编程能力,并且已经理解Go语言的基础语法。每章节内容无先后依赖关系,无阅读顺序要求。
本篇包括以下章节:
第1章,深入理解Go语言协程调度器GPM模型。
本章介绍Go语言中调度器的由来,以及如何演进到GPM模型的设计,其中包含一个Go语言协程在启动过程中如何运行和加载GPM模型的细节动作,也包括GPM模型的可视化编程和调试分析。最后形象地介绍GPM模型的各个触发条件及运作的场景。
第2章,Go语言混合写屏障的GC全场景分析。
本章主要介绍Go语言自V1.3以来所采用的内存清理模式,分别具有标记清除、三色标记、写屏障机制,其中一些Go语言的设计理念和垃圾回收理念非常值得借鉴和学习。本章节主要以推演的形式逐一介绍Go语言垃圾回收的处理机制。
第3章,Go语言内存管理洗髓经。
本章讲解内存管理的模型,以及MMU等系统级别内存管理模式,不仅会逐一介绍内存管理的真正目标及设计思想,还会介绍Go语言在内存管理中所使用的内存模型和管理模式,其主要内容包括以下几点。
(1)何为内存。
(2)内存为什么需要管理。
(3)操作系统是如何管理内存的。
(4)如何用Go语言自己实现一个内存管理模型。
(5)Go语言内存管理之魂:TCMalloc。
(6)Go语言中是如何管理内存的。
第4章,深入理解Linux网络I/O复用并发模型。
本章与Go语言语法无关,但是作为Go语言开发者,以Linux为平台去深入理解网络I/O复用和并发架构模型非常有必要。这一章主要介绍服务器端对于网络并发模型及Linux系统下常见的网络I/O复用并发模型。本章内容一共分为两部分。第一部分主要介绍网络并发中的一些基本概念及Linux下常见的原生I/O复用系统调用(epoll/select)等;第二部分主要介绍并发场景下常见的网络I/O复用模型,以及各自的优缺点。