没明白为什么从select里面接收的值再送给worker会造成阻塞

来源:11-4 用select进行调度

慕斯卡7374230

2022-03-12

func main() {
c1, c2 := generateChannel(), generateChannel()
for {
select {
case n := <-c1:
w <- n
case n := <-c2:
w <- n
}
}
}

为什么从c1或c2获取n后,再将n传递给worker会造成阻塞

写回答

1回答

醉的抠脚

2022-03-14

worker 要有接受的地方才不会阻塞

0
1
慕斯卡7374230
哪里没接收?数据从c1或c2读出后立即送给了另一个channel,也就是w。worker所在的这个groutine也是循环读取w内的数据,怎么会造成堵塞呢?
2022-03-15
共1条回复

Google资深工程师深度讲解Go语言 由浅入深掌握Go语言

语法+分布式爬虫实战 为转型工程师量身打造

5995 学习 · 1909 问题

查看课程