golang如何实现这种同步,就是让某个信号量小于1时停止阻塞

var wg = sync.WaitGroup这个东西的信号量最小只能为0。

而我想实现的是在n个goroutine中,只要执行的wg.Done次数大于发射goroutine之前wg.Add的数字,那么就立即停止wg.Wait的阻塞。这就有点类似于C语言里面负数信号量,请问一下golang有什么比较方便的方式实现我这个需求吗?

阅读 2.3k
1 个回答
新手上路,请多包涵

context.Context

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题