标签: go
与该标签相关的所有文章 "go".
-
Go 运行时(二):并发三色标记清除收集器
Go 使用并发、非移动、三色标记清除垃圾收集器。设计哲学是用内存换低延迟(STW < 1ms),只暴露两个调参旋钮(GOGC + GOMEMLIMIT)。Go 1.26 起默认启用 Green Tea GC,marking 阶段性能提升 10-40%。
-
Go 运行时(一):GMP 调度模型
Go 运行时通过 G(goroutine)、M(OS thread)、P(logical processor)三级抽象实现 M:N 线程调度。P 的引入(Go 1.1)解决了全局锁竞争,work-stealing 保证负载均衡,异步抢占(Go 1.14+,SIGURG 信号)消除了 CPU 密集型 goroutine 的饥饿问题。Go 1.25 起 GOMAXPROCS 自动感知容器 cgroup CPU 限制。
-
Go 并发(五):并发模式与最佳实践
Go 的并发编程远不止 goroutine + channel。生产级代码需要掌握 context 传播与取消树、errgroup 有界并发、worker pool 模式、graceful shutdown 全流程、race detector 的 CI 集成,以及至少十种常见反模式的识别与规避。本文是"如何在生产环境写出正确并发 Go 代码"的完整指南。
-
Go 并发(四):无锁编程层次-从 CAS 到消除共享
CAS 既是乐观锁也是无锁编程,不矛盾——"乐观锁"描述并发策略,"无锁"描述实现方式(不用 mutex)。比 CAS 更激进的方向是 FAA(一次成功)→ 分片(消除共享)→ RCU(读者零开销)。