select阻塞的问题
来源:11-4 用select进行调度
五栋一哥
2020-03-26
老师,channel读写都会阻塞,我把time.sleep去掉后,在go func中给 out < -i 写数据,那么在没有读out前,这个携程应该是阻塞的,不会进行下次操作。但是执行结果却是输出很大的数据,而不是从i=0开始的,为什么不是,i=0时 ,out<-i ,在没有读数据前,应该是阻塞的,而在select中选择执行case后,他才会往后进行循环呢?


写回答
1回答
-
还是会从1开始的,但因为它输出太快太多了,运行窗口的缓冲区不够,所以只显示了最新的数据,不然idea就要挂了。
实在要看我们可以go run xxx.go > out.txt
然后打开这个out.txt查看,不过记得运行的时候要及时按ctrl+c,这个out.txt会非常大。
112020-03-28
相似问题
关于select的问题
回答 1
Channel等待任务结束
回答 1