使用通道更快地关闭 goroutine

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

Copyright 2011-2024 南京追名网络科技有限公司 苏ICP备2023031119号-6 乌徒帮 All Rights Reserved Powered by Z-BlogPHP Theme By open开发

请先 登录 再评论,若不是会员请先 注册