Channel等待任务结束

来源:11-2 使用Channel等待任务结束

IT小书童z

2018-07-30

为什么在doWorker()方法中done<-true 后,再channelDemo中<- workers[i].done就可以time.Sleep(time.Microsecond)的作用

写回答

1回答

ccmouse

2018-07-30

因为channel的读写都是阻塞的。在从done收数据时,它会阻塞住,一直等到另一头往这个channel发送数据。而另一头也只有在任务结束后才会往done里面发东西。这就实现了等待任务结束的目的。

2
3
IT小书童z
非常感谢!
2019-02-18
共3条回复

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

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

5995 学习 · 1909 问题

查看课程