搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
文献来源:
出版时间 :
深入Go语言(原理关键技术与实战)/Go语言与云原生系列
0.00     定价 ¥ 99.00
图书来源: 浙江图书馆(由浙江新华配书)
此书还可采购25本,持证读者免费借回家
  • 配送范围:
    浙江省内
  • ISBN:
    9787113295738
  • 作      者:
    编者:历冰//朱荣鑫//黄迪璇|责编:荆波
  • 出 版 社 :
    中国铁道出版社有限公司
  • 出版日期:
    2023-04-01
收藏
畅销推荐
内容介绍
随着服务器硬件性能的提升,多核CPU已经很常见,充分利用硬件的多核运算优势是很多开发者不断探索和努力的方向。相较于一些编程语言的框架在不断地提高多核资源的使用效率,Go语言在多核并发上拥有原生的设计优势,其显著的语言特征是对并发编程的原生支持,目前在云计算、容器领域应用广泛。 Go语言总体来说上手简单,但是到实际的开发中,仅仅掌握Go语言的语法远远不够。因此在理解Go语言语法的基础上,深入了解Go语言的实现内幕、高级特性以及实践中的使用陷阱变得异常重要,这也正是本书要向读者详细介绍的。 本书适合Go语言开发者,尤其是想要深入了解或者转型Go语言开发的进阶型开发者。
展开
目录
第1章 高级编程语言以及Go语言基础
1.1 高级语言简介
1.1.1 程序设计语言的定义
1.1.2 程序设计语言的发展历史
1.1.3 高级语言分类
1.2 为什么要研究编程语言
1.2.1 当今流行编程语言的概况
1.2.2 效率是程序语言流行的决定因素
1.2.3 了解高级语言的重要性
1.3 本书的主角:Go语言
1.3.1 体现Go语言特性的五个关键词
1.3.2 Go语言基础语法
第2章 数据结构源码分析
2.1 数组
2.1.1 数组的基础使用
2.1.2 数组的底层数据结构
2.1.3 数组的越界检查
2.2 字符串
2.2.1 Go语言字符串的基础操作
2.2.2 Go语言字符串的底层数据结构
2.2.3 Go语言字符串的拼接
2.2.4 Go语言字符串的类型转换
2.3 切片
2.3.1 切片的基础操作
2.3.2 切片的底层数据结构
2.3.3 切片的追加操作
2.3.4 切片的删除操作
2.4 哈希表
2.4.1 哈希表的基础操作
2.4.2 哈希表底层数据结构
2.4.3 哈希表的初始化
2.4.4 哈希表的读取操作
2.4.5 哈希表的写入操作
2.4.6 删除操作
2.4.7 哈希表的扩容操作
第3章 Go语言的并发结构
3.1 锁控制
3.1.1 互斥锁Mutext
3.1.2 读/写锁RWMutext
3.2 协程编排
3.2.1 协同等待的WaitGroup
3.2.2 只执行一次的Once
3.2.3 请求合并的SingleFlight
3.3 协程安全的数据结构
3.3.1 读写锁实现
3.3.2 分片加锁实现
3.3.3 sync.Map实现
3.3.4 性能评测实验
第4章 Go语言内存分配和垃圾回收机制
4.1 Linux内存空间布局
4.2 Go语言内存分配机制
4.2.1 Go语言内存空间的状态机
4.2.2 内存管理单元mspan
4.2.3 内存线程缓存mcache
4.2.4 内存中心缓存mcentral
4.2.5 页堆mheap
4.2.6 内存分配函数newObject
4.2.7 各级内存组件功能的实现
4.2.8 实验:打印内存分配相关日志
4.3 Go语言垃圾回收机制
4.3.1 Go语言垃圾回收的基础原理
4.3.2 Go语言垃圾回收流程
4.3.3 垃圾回收触发时机
4.3.4 清理终止阶段和开启标记阶段
4.3.5 标记阶段
4.3.6 标记终止阶段
4.3.7 内存清理
第5章 Go语言协程
5.1 进程与线程
5.1.1 进程和线程的概念
5.1.2 进程与线程的区别
5.1.3 并发与并行
5.2 协程的诞生
5.2.1 协程诞生的背景
5.2.2 协程的工作机制和优势
5.2.3 协程、线程、进程的差异
5.3 Go语言的调度器goroutine
5.3.1 Go context上下文
5.3.2 Go语言并发模型
5.3.3 Go调度模型概览
5.3.4 调度器的实现原理
5.4 goroutine之间的通信:channel
5.4.1 channel的设计与结构
5.4.2 channel的使用
5.4.3 解决channel阻塞:select
5.4.4 goroutine与channel的结合案例
5.4.5 并发问题是选Mutex还是选channel
第6章 Go语言网络并发处理
6.1 网络并发处理的演变
6.1.1 程序设计导致的C10K问题
6.1.2 操作系统调优的C1000K问题
6.1.3 更进一步的C10M问题
6.2 Reactor请求处理模式
6.2.1 Reactor模式简介
6.2.2 Getty网络库介绍
6.3 HTTP请求处理
6.3.1 net/http包解析
6.3.2 Go Fasthttp解析
第7章 Go语言错误处理机制
7.1 代码中的错误与异常
7.2 Go语言的错误处理哲学
7.2.1 Errors are values
7.2.2 error接口
7.2.3 对error进行编程
7.3 处理异常并恢复
7.3.1 基本使用方式
7.3.2 defer延时执行的实现原理
7.3.3 panic终止程序和recover从panic中恢复的原理
第8章 Go语言的类型系统
8.1 编程语言类型系统简介
8.1.1 用户自定义类型
8.1.2 抽象数据类型
8.1.3 面向对象编程
8.2 Go语言类型底层实现
8.2.1 Go语言结构体底层实现
8.2.2 嵌入底层实现
8.2.3 接口底层实现
8.2.4 接口函数调用和动态派发
第9章 Go语言的泛型和反射
9.1 Go语言的泛型
9.1.1 Go语言泛型基础理念
9.1.2 泛型的必要性
9.2 Go语言的泛型特性
9.2.1 Go语言泛型的理念
9.2.2 Go语言泛型语法
9.2.3 Go语言泛型的实现
9.3 Go语言反射机制
9.3.1 Go语言反射技术简介
9.3.2 Go语言反射使用
9.4 Go语言反射实现
9.4.1 获取反射对象
9.4.2 更新变量
9.4.3 调用函数
第10章 Go语言工程化实践
10.1 日志
10.1.1 日志级别
10.1.2 日志格式
10.1.3 日志框架
10.2 代码测试
10.2.1 单元测试
10.2.2 基准测试
10.3 Go语言调试
10.3.1 GDB调试
10.3.2 使用De
展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

请选择您读者所在的图书馆

选择图书馆
浙江图书馆
点击获取验证码
登录
没有读者证?在线办证