完成 14.3

This commit is contained in:
glight2000
2015-12-29 14:23:01 +08:00
parent ffc52b698f
commit 9c8a85c98b

View File

@@ -1,4 +1,4 @@
# 协程的同步:关闭通道-测试阻塞的通道
# 14.3 协程的同步:关闭通道-测试阻塞的通道
通道可以被显示的关闭;尽管它们和文件不同:不必每次都关闭。只有在当需要告诉接收者不会再提供新的值的时候,才需要关闭通道。只有发送者需要关闭通道,接收者永远不会需要。
@@ -99,9 +99,9 @@ for input := range ch {
```
阻塞和生产者-消费者模式
在章节14.2.10的通道迭代器中两个协程经常是一个阻塞另外一个如果程序工作在多核心的机器上大部分时间只用到了一个处理器可以通过使用带缓冲缓冲空间大于0的通道来改善比如缓冲大小为100迭代器在阻塞之前至少可以从容器获得100个元素如果消费者协程在独立的内核运行就有可能让协程不会出现阻塞
由于容器中元素的数量通常是已知的需要让通道有足够的容量放置所有的元素这样迭代器就不会阻塞尽管消费者协程仍然可能阻塞)。然后这样有效的加倍了迭代容器所需要的内存使用量所以通道的容量需要限制一下最大值记录运行时间和性能测试可以帮助你找到最小的缓存容量带来最好的性能
## 链接