go-channel通信

 

 

 

1、无缓存channel
   ch := make(chan int),消费者协程必须在 channel 放入值之前执行,不然会导致deadlock。因为放入数据就会获得一把锁,等待消费者消费,消费完才释放锁。
2、缓存channel
   ch2 := make(chan int, 1),channel 放入的个数不能超过缓存数量。
3、关闭channel,已经关闭的channel, 不能再向其发送数据了。但是能够取数据。
   close(ch)
4、向channel发送数据
  ch <- 1
5、取channel数据
   n, ok := <- ch
6、普通channel可以转为单向channel,反之不行。

 

posted @ 2019-02-23 14:52  osbreak  阅读(148)  评论(0编辑  收藏  举报