【发布时间】:2015-08-07 11:01:56
【问题描述】:
我一直在尝试理解 https://golang.org/doc/codewalk/sharemem/ 虽然我得到了关于通过通道传递资源的大部分内容,但我无法理解程序运行的无限循环。当轮询函数中的“in”通道(从主函数接收)时,程序如何无限执行轮询函数) 只运行 3 个 poller go 例程?
我知道 StateMonitor 具有无限循环的匿名 go 函数。但是如果没有从 Poller 函数接收,它就无法更新 LogState。我假设程序无限执行对 url 的 Get 请求。
为了确认我的理解没有错,我通过打开和关闭 wifi 来测试程序,看看日志是否发生变化。令我惊讶的是,它确实进行了几次迭代,但之后它停止响应我的更改并继续显示相同的日志。那么,这是否意味着程序有问题?还是我没有理解一些基本概念?
【问题讨论】:
标签: go concurrency channels