首页
文章列表
标签墙
返回找工具啦
channel
共 8 篇文章
Go语言select和switch的区别:为什么select只能用于channel
2026-05-14 00:16:39
Go语言select和switch的区别:为什么select只能用于channel Go语言中,select 语句和 switch 语句在表面上看起来非常相似:它们都使用了 case 关键字,都用于处理多路分支逻辑。然而,它们在底层机制、应用场景以及设计初衷上有着本质的区别。switch 是一种通用
Go语言
select
switch
36
0
Go语言sync.Cond与channel在条件等待中的选择
2026-04-30 09:20:22
Go语言sync.Cond与channel在条件等待中的选择 在Go语言的并发编程中,让一个Goroutine等待特定条件成立是常见需求。Go标准库提供了sync.Cond(条件变量)和channel(通道)两种机制来实现这一功能。虽然两者都能达到“等待”和“通知”的目的,但它们的适用场景和底层逻辑
Go语言
并发编程
sync.Cond
52
0
Go语言channel的select与default的非阻塞发送实现
2026-04-29 11:20:30
在 Go 语言并发编程中,直接向 channel 发送数据通常会阻塞当前 goroutine,直到接收者准备好。这种机制虽然保证了数据同步,但在某些高吞吐或对延迟敏感的场景下,我们更希望发送操作能够“立即返回”,如果 channel 满了则放弃或执行备用逻辑,而不是死等。利用 select 语句配合
Go语言
并发编程
Channel
46
0
Go语言select在nil channel上的永久阻塞行为
2026-04-28 22:22:18
Go 语言的 select 语句是处理多通道操作的核心机制,但它在处理 nil channel 时的行为往往出乎新手意料。当 select 中的某个 case 作用于 nil channel 时,该 case 会被永久忽略。如果所有 case 都是 nil,select 将会永久阻塞。这一特性既可以
Go语言
Go并发
select
54
0
Go语言select在多个channel就绪时的伪随机选择
2026-04-22 00:23:57
Go语言select在多个channel就绪时的伪随机选择 Go 语言中的 select 语句是处理多个 channel 并发操作的利器。当多个 channel 同时满足读写条件(即“就绪”)时,Go 运行时并不会按照代码书写的顺序或者先进先出的原则进行选择,而是采用了一种伪随机的算法。这种机制的设
Go语言
并发编程
select
63
0
Java NIO:ByteBuffer 与 Channel 的使用
2026-04-12 08:26:02
Java NIO:ByteBuffer 与 Channel 的使用 ByteBuffer 是 Java NIO 中用于数据交互的核心容器,而 Channel 则是数据传输的通道。两者的配合是实现高效 I/O 操作的基础。本指南将通过具体步骤,演示如何利用 ByteBuffer 进行数据的读写与传输。
JavaNIO
Channel
Buffer
45
0
Go 选择语句:select 与超时处理
2026-04-05 04:56:34
Go 选择语句:select 与超时处理 在 Go 并发编程中,select 语句是协调多个信道操作的核心工具。它能够让程序同时监听多个信道的状态,在任意一个信道就绪时执行对应分支。这种机制特别适合处理超时、取消操作和资源竞争等场景。 select 语句基础 select 语句的语法与 switch
Go语言
select语句
并发编程
59
0
Go 并发编程:goroutine 与 channel
2026-04-03 18:18:18
Go 并发编程:goroutine 与 channel Go 语言的并发模型基于两个核心概念:goroutine 和 channel。goroutine 是轻量级线程,由 Go 运行时自动管理;channel 是 goroutine 之间通信的管道,用于安全地传递数据。掌握这两者,就能高效编写并发程
Go
并发编程
goroutine
62
0