0
点赞
收藏
分享

微信扫一扫

go管道解决没有及时关闭出现阻塞的情况

package  main

import (
"fmt"
"time"
)

func main(){
//1.定义一个管道,10个数据int
intChan :=make(chan int,10);
for i:=0;i<10;i++{
intChan <- i;
}
//说明如果管道没有关闭,那么就会出现死锁 deadlock,所以一般情况下
//大家都会关闭管道,比如close(mychan),但是有时候我们不知道什么时候关闭
//那么久要使用select来解决
for {
select {
case v:= <- intChan:
fmt.Printf("output data is %v\n",v);
time.Sleep(time.Second*1);
default:
fmt.Printf("管道里面没有数据了\n");
return;
}
}
}

go管道解决没有及时关闭出现阻塞的情况_i++

 

举报

相关推荐

0 条评论