From 42406e0ba1aefd43b0ff2da9afd4625585a0010f Mon Sep 17 00:00:00 2001 From: cmatrixprobe Date: Wed, 29 Apr 2020 15:41:30 +0800 Subject: [PATCH] =?UTF-8?q?ch1-06:=E4=BF=AE=E6=94=B9=E6=8B=BC=E5=86=99?= =?UTF-8?q?=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ch1-basic/ch1-06-goroutine.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ch1-basic/ch1-06-goroutine.md b/ch1-basic/ch1-06-goroutine.md index 4809416..093ebda 100644 --- a/ch1-basic/ch1-06-goroutine.md +++ b/ch1-basic/ch1-06-goroutine.md @@ -587,14 +587,14 @@ func main() { 我们通过`close`来关闭`cancel`管道向多个Goroutine广播退出的指令。不过这个程序依然不够稳健:当每个Goroutine收到退出指令退出时一般会进行一定的清理工作,但是退出的清理工作并不能保证被完成,因为`main`线程并没有等待各个工作Goroutine退出工作完成的机制。我们可以结合`sync.WaitGroup`来改进: ```go -func worker(wg *sync.WaitGroup, cannel chan bool) { +func worker(wg *sync.WaitGroup, cancel chan bool) { defer wg.Done() for { select { default: fmt.Println("hello") - case <-cannel: + case <-cancel: return } }