采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
为什么在doWorker()方法中done<-true 后,再channelDemo中<- workers[i].done就可以time.Sleep(time.Microsecond)的作用
因为channel的读写都是阻塞的。在从done收数据时,它会阻塞住,一直等到另一头往这个channel发送数据。而另一头也只有在任务结束后才会往done里面发东西。这就实现了等待任务结束的目的。
那没有time.Sleep(time.Microsecond)在main中,main为什么不会执行完了退出呢,main也被阻塞了么
是的,main也会被channel阻塞
非常感谢!
登录后可查看更多问答,登录/注册
语法+分布式爬虫实战 为转型工程师量身打造
3.7k 14
695 1
2.0k 1
1.1k 12