From 5100708ecd951df121106918f0ed7ac33c3b5d3b Mon Sep 17 00:00:00 2001 From: gan weiliang Date: Fri, 14 Dec 2012 21:13:54 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=99=E9=87=8C=E5=BA=94=E8=AF=A5=E6=9C=89?= =?UTF-8?q?=E9=80=97=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 2.7.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/2.7.md b/2.7.md index ea296df1..006be415 100644 --- a/2.7.md +++ b/2.7.md @@ -80,7 +80,7 @@ channel通过操作符`<-`来接收和发送数据 fmt.Println(x, y, x + y) } -默认情况下,channel接收和发送数据都是阻塞的除非另一端已经准备好,这样就使得Goroutines同步变的更加的简单,而不需要显式的lock。所谓阻塞,也就是如果读取(value := <-ch)它将会被阻塞,直到有数据接收。其次,任何发送(ch<-5)将会被阻塞,直到数据被读出。无缓冲channel 是在多个goroutine之间同步很棒的工具。 +默认情况下,channel接收和发送数据都是阻塞的,除非另一端已经准备好,这样就使得Goroutines同步变的更加的简单,而不需要显式的lock。所谓阻塞,也就是如果读取(value := <-ch)它将会被阻塞,直到有数据接收。其次,任何发送(ch<-5)将会被阻塞,直到数据被读出。无缓冲channel 是在多个goroutine之间同步很棒的工具。 ## Buffered Channels 上面我们介绍了默认的非缓存类型的channel,不过Go也允许指定channel的缓冲大小,很简单,就是channel可以存储多少元素。ch:= make(chan bool, 4),创建了可以存储4个元素的bool 型channel。在这个channel 中,前4个元素可以无阻塞的写入。当写入第5个元素时,代码将会阻塞,直到其他goroutine从channel 中读取一些元素,腾出空间。