,我是 GO 新手,我有一个关于使用通道信号停止 goroutine 的问题。,我有一个长期运行的 goroutine(超过 1000 个)和管理器来管理它:,在这种情况下,每次我调用
c <- true
管理器都会等待 callClientTask()
完成,然后转到下一个 cancelChannel
我希望所有 goroutine 在
callClientTask()
的 1 次迭代中停止(不超过 30 秒),我尝试的唯一方法是像这样投射新的 goroutine:,我这是正确的方法吗?,据我从您的问题中了解到,“您希望所有 goroutine 在 callClientTask() 的 1 次迭代中停止(不超过 30 秒)”并且工作线程同时运行而不会出现同步问题。,我重新组织了与等待组同时运行的代码。,示例代码:,输出:,编辑:,如果您想停止某些工作人员,则必须更新工作人员。以下代码包括具有“停止”和“停止”通道的工作人员以及启动/停止功能。,示例代码:,输出:,