更改:练习 14.4中 睡眠时间为2e9

测试证明getData 与 main 中都睡眠 1e9的情况下 程序仍有可能会输出内容
This commit is contained in:
Instrye
2017-03-28 10:36:10 +08:00
committed by GitHub
parent 865cbc3dd3
commit 3e36ed2d15

View File

@@ -84,7 +84,7 @@ func sendData(ch chan string) {
func getData(ch chan string) {
var input string
// time.Sleep(1e9)
// time.Sleep(2e9)
for {
input = <-ch
fmt.Printf("%s ", input)
@@ -118,7 +118,7 @@ Washington Tripoli London Beijing Tokio
注意不要使用打印状态来表明通道的发送和接收顺序由于打印状态和通道实际发生读写的时间延迟会导致和真实发生的顺序不同
练习 14.4解释一下为什么如果在函数 `getData()` 的一开始插入 `time.Sleep(1e9)`不会出现错误但也没有输出呢
练习 14.4解释一下为什么如果在函数 `getData()` 的一开始插入 `time.Sleep(2e9)`不会出现错误但也没有输出呢
## 14.2.3 通道阻塞