Day 23|标准库高频组件的设计思想(io / bufio / bytes / strings)[Go 语言 30 天系统学习计划]
学习目标 一、为什么要深入理解标准库 Go 标准库的一个重要特点是: 工程认知: 标准库不是“工具集合”,而是 … 阅读更多
学习目标 一、为什么要深入理解标准库 Go 标准库的一个重要特点是: 工程认知: 标准库不是“工具集合”,而是 … 阅读更多
学习目标 一、为什么性能优化必须“用工具说话” 性能问题的常见误区: 工程事实: Go 官方的态度非常明确: … 阅读更多
学习目标 一、为什么需要理解内存与 GC 在 Go 中: 真实工程中的问题往往表现为: 工程认知:很多性能问题 … 阅读更多
学习目标 一、什么是 Go runtime Go runtime 是: 与 Java / JVM 类似,但: … 阅读更多
学习目标 一、为什么需要内存模型 很多并发 bug 并不是因为: 而是因为: 内存模型定义了: 工程认知:并发 … 阅读更多
学习目标 一、为什么需要 sync/atomic 在 Day 17 中你已经看到: sync/atomic 提 … 阅读更多
学习目标 一、什么是数据竞争(Race Condition) 在 Go 中,数据竞争指的是: 多个 gorou … 阅读更多
学习目标 一、为什么需要并发模式 在前面的章节中,你已经学会了: 但在真实工程中,问题往往不是“能不能并发”, … 阅读更多
学习目标 一、为什么需要 context 在前面的并发章节中,你已经看到几个现实问题: 这些问题的统一解决方案 … 阅读更多
学习目标 一、为什么仍然需要锁(mutex) Go 的并发哲学是: 通过通信来共享数据,而不是通过共享数据来通 … 阅读更多
学习目标 一、为什么需要 select 在 Day 12 中你已经学会: 问题随之而来: 答案:select … 阅读更多
学习目标 一、为什么 Go 需要 channel 在 Go 中,并发并不是靠“共享内存 + 锁”作为第一选择, … 阅读更多
学习目标 一、什么是 goroutine goroutine 是 Go 提供的用户态并发执行单元,由 Go r … 阅读更多
学习目标 一、panic 在 Go 中到底是什么 在 Go 中: panic 不是异常(exception), … 阅读更多
学习目标 一、为什么需要 errors.Is / errors.As 在 Day 8 中你已经学会错误包装: … 阅读更多