|
|
@@ -90,7 +90,7 @@ Received on channel 1: 94348
|
|
|
|
|
|
练习14.7:
|
|
|
* a)在练习5.4的for_loop.go中,有一个常见的for循环打印数字。在函数`tel`中实现一个for循环,用协程开始这个函数并在其中给通道发送数字。`main()`线程从通道中获取并打印。不要使用`time.Sleep()`来同步:[goroutine_panic.go](exercises/chapter_14/goroutine_panic.go)
|
|
|
-* b)也许你的方案有效,可能会引发运行时的panic:`throw:all goroutines are asleep-deadlock!` 为什么会这样?你如何解决这个问题?[goroutine_close.go]((exercises/chapter_14/goroutine_close.go))
|
|
|
+* b)也许你的方案有效,可能会引发运行时的panic:`throw:all goroutines are asleep-deadlock!` 为什么会这样?你如何解决这个问题?[goroutine_close.go](exercises/chapter_14/goroutine_close.go)
|
|
|
* c)解决a)的另外一种方式:使用一个额外的通道传递给协程,然后在结束的时候随便放点什么进去。`main()`线程检查是否有数据发送给了这个通道,如果有就停止:[goroutine_select.go](exercises/chapter_14/goroutine_select.go)
|
|
|
|
|
|
|