本文摘自php中文网,作者(*-*)浩,侵删。

goroutine和channel是Go语言非常棒的特色,它们提供了一种非常轻便易用的并发能力。但是当您的应用进程中有很多goroutine的时候,如何在主流程中等待所有的goroutine 退出呢?
1 通过Channel传递退出信号 (推荐学习:go)
Go的一大设计哲学就是:通过Channel共享数据,而不是通过共享内存共享数据。主流程可以通过channel向任何goroutine发送停止信号,就像下面这样:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
|
这种方式可以实现优雅地停止goroutine,但是当goroutine特别多的时候,这种方式不管在代码美观上还是管理上都显得笨拙不堪。
相关阅读 >>
leetcode1047 删除字符串中的所有相邻重复项 golang
rtmp协议视频平台easydss编译过程中go语言异步信息处理设计与实现
更多相关阅读请进入《golang》频道 >>

Go语言101
一个与时俱进的Go编程知识库。