首页
文章列表
标签墙
返回找工具啦
通道
共 5 篇文章
Go语言context.Done()通道在取消时的关闭行为
2026-05-03 08:21:08
Go语言context.Done通道在取消时的关闭行为 在 Go 语言并发编程中,context 包是控制 Goroutine 生命周期的核心工具。理解 context.Done 通道在取消操作时的具体行为,对于编写优雅、不泄露资源的并发程序至关重要。本文将深入剖析 Done 通道的关闭机制,并通过
Go语言
并发编程
Context
45
0
Go语言select在default case下的非阻塞语义
2026-05-03 05:21:18
Go语言select在default case下的非阻塞语义 Go语言的 select 语句是处理多个通道操作的核心机制。通常情况下,select 会阻塞,直到其中一个 case 能够执行。然而,当 select 包含一个 default 分支时,其语义会发生根本性变化:它将不再阻塞,而是立即执行。
Go语言
select
非阻塞
41
0
Go语言通道的happens-before关系与内存可见性
2026-05-02 09:27:38
Go语言通道的happensbefore关系与内存可见性 Go语言的并发模型以通道为核心,理解通道的 happensbefore 关系是编写无数据竞争代码的关键。happensbefore 是内存模型中的术语,用于保证一个操作的结果对另一个操作可见。掌握这套规则,能让你在不依赖锁的情况下,安全地在
Go语言
并发编程
通道
45
0
Go 并发模式:工作池与扇入扇出
2026-04-17 07:15:11
Go 并发编程的核心在于高效利用多核 CPU,同时避免资源耗尽。通过控制并发粒度,我们可以显著提升数据处理速度。以下是构建工作池与扇入扇出模式的实操指南。 第一部分:工作池 工作池模式的核心思想是限制并发运行的 Goroutine 数量。想象你有一个无限长的任务列表,但只有 3 个工人来处理,这样可
Go语言
并发编程
工作池
62
0
Go语言 通道Channel的缓冲与无缓冲区别
2026-04-04 03:47:09
Go语言 通道Channel的缓冲与无缓冲区别 Go语言中的通道(channel)是协程(goroutine)之间通信的核心机制。理解通道的缓冲与无缓冲特性,是编写高效、正确并发程序的关键。 1. 创建无缓冲通道 声明一个无缓冲通道的方式如下: go ch := makechan int 这行代码创
Go语言
通道
缓冲通道
76
0