并发模型全景图(三):Go 的 goroutine 凭什么这么轻
Go 的并发之所以好用,不只是因为 goroutine 轻量,更因为 Go 运行时实现了一套 M:N 调度器,让协程能真正利用多核。这篇文章拆解 goroutine 的底层原理、GMP 调度模型、channel 的设计哲学,以及 Go 里常见的并发陷阱。
共 5 篇文章
Go 的并发之所以好用,不只是因为 goroutine 轻量,更因为 Go 运行时实现了一套 M:N 调度器,让协程能真正利用多核。这篇文章拆解 goroutine 的底层原理、GMP 调度模型、channel 的设计哲学,以及 Go 里常见的并发陷阱。
为什么有 GIL 的 Python 能跑出高并发?asyncio 事件循环底层是怎么工作的?Go 的 goroutine 和 GMP 调度器凭什么比线程快那么多?这篇文章把这几件事从操作系统层面讲清楚,最后做一次正面对比。
从零设计一个支持多源接入、签名验证、可靠投递和扇出路由的 Webhook 网关,深入分析每个设计决策背后的取舍。
深入剖析 PostgreSQL SKIP LOCKED 的工作原理,以及如何在不引入 Kafka/RabbitMQ 的情况下实现生产级的可靠消息投递。
深入剖析 Prism 的设计:为什么选 ClickHouse 而不是 Elasticsearch,自适应采样如何在成本和覆盖率之间取得平衡,以及 Context 传播的实现细节。