From 3e36ed2d15d5a363380a06ff2680d99177b7155c Mon Sep 17 00:00:00 2001 From: Instrye Date: Tue, 28 Mar 2017 10:36:10 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=94=B9:=E7=BB=83=E4=B9=A0=2014.4?= =?UTF-8?q?=E4=B8=AD=20=E7=9D=A1=E7=9C=A0=E6=97=B6=E9=97=B4=E4=B8=BA2e9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 测试证明getData 与 main 中都睡眠 1e9的情况下 程序仍有可能会输出内容 --- eBook/14.2.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eBook/14.2.md b/eBook/14.2.md index e162b2d..a7405c0 100644 --- a/eBook/14.2.md +++ b/eBook/14.2.md @@ -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 通道阻塞