activeWorker <- activeRequest 潜在问题

来源:16-4 队列实现调度器

aiqingyuyan

2020-08-02

有个小疑问想请教一下ccmouse,
select语句前面的

var activeRequest engine.Request
var activeWorker chan engine.Request

会给相应的变量赋予zero value,当activeWorker是nil也就是zero value的时候select会忽略这个case,这个好理解。但是,当activeWorker不是nil, activeRequest是zero value的时候这个也有可能被选中吧,那这样的话,这个case下的requestQueue就会失去一个真实的request。不知道我的理解有没有问题

写回答

1回答

ccmouse

2020-08-02

不会失去,真实的request没人收,发送方会卡住。接收方会在下一个for重新接收。如果此时activeRequest有值,就会收下来。如果还是没有,就等再下一次for

0
0

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

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

5995 学习 · 1909 问题

查看课程