知识卡片

Select管理多路等待

专业/工作 · 470.b.1.a.1.c.3.a.8.b

内容

select 让 goroutine 同时等待多个 channel 操作,是超时、取消和多路事件处理的基础。发散:并发控制的优雅常来自把等待点集中表达。运行时实现细节见[[Select做多路选择]]。

参考来源

- 位置:《Go语言入门到实战(共3册)》第20章《Go语言编程入门与实战技巧:第10章 并发编程》(源文件:_epub-src/text/part0032_split_000.html) - 结论依据:原文围绕“select”给出定义、机制、流程、对比或限制条件,本卡片据此提炼可迁移的语言/工程结论,并补充了边界或实践启发。 - 原始内容:el 中被写入数据为止。之后还会介绍如何控制channel 只接受写或者只允许读,即单向channel。 10.3.2 select 早在UNIX时代,select机制就已经被引入。通过调用select()函数来监控一系列的文件句柄,一旦其中一个文件句柄发生了I/O动作,该select()调用就会被……