func main(){ ArraySource(3,2,6,8,1,9) time.Sleep(time.Duration(1) * time.Millisecond) //停止1毫秒 } func ArraySource(a ...int) chan int{ //out:=make(chan int,10) //控制台打印的是全部数据,有缓存功能,一次性把所有数据都发送过去了 out:=make(chan int,2) //控制台打印的是326,有缓存功能,发送一次数据后由于没有被消费掉所以卡在了6这里 //out:=make(chan int) //控制台打印的是第一个数字3,因为通道里的数据没有被消费掉所以这里堵塞了 go func() { for _,v := range a{ fmt.Println(v) out <-v } close(out) }() return out }
goroutine简单堵塞实例
最新推荐文章于 2024-03-04 08:48:59 发布