2012年11月02日 星期五

golang 缓冲与非缓冲channel

其实对一个channel,不管是缓冲还是非缓冲,都可以放入至少一个数据,比如非缓冲可以放1个,缓冲可以放多个.缓冲和非缓冲区别不是在于能放多少个,而是在于在select里是否被阻塞. 非缓冲channel在select里赋值,会被阻塞. 下面是实例代码:
package main

import "fmt"

func main() {
messages := make(chan string)
signals := make(chan bool)
select {
case msg :=
运行结果:
no message received
no message sent
no activity
[Finished in 3.3s]