有个需求如下:
- 随着用户的操作,服务器动态生成很多 goroutines
- 在用户调用某个接口时,结束整个操作,但是要等所有 goroutines 结束
之前用 WaitGroup,但是这个好像不太满足这种场景呢,这种场景开始时并不清楚有多少个 goroutines 会产生,也不清楚哪一个运行时间长。
哪位大佬帮忙指点迷津,多谢
有个需求如下:
之前用 WaitGroup,但是这个好像不太满足这种场景呢,这种场景开始时并不清楚有多少个 goroutines 会产生,也不清楚哪一个运行时间长。
哪位大佬帮忙指点迷津,多谢
1
mengzhuo Oct 12, 2019
官方包的 context 就是你要的
|
2
SmiteChow Oct 12, 2019
没写过 go,但通用的思路是 create coroutine 记录一下 instance 到 global
|
3
qieqie Oct 12, 2019
WaitGroup 可以满足你的需求
|
5
YakuMioto Oct 12, 2019
WaitGroup 我都是用来解决程序何时退出的, 我觉得这个是用来控制大局观的, 看你的描述, 我觉得 context 最合适. 同 1L.
|
6
Vegetable Oct 12, 2019
这就是 waitgroup
|
7
lazyfighter Oct 12, 2019
为什么我感觉应该用 channel 呢,用户操作发个信号然后 goroute 退出
|
8
abel1989 Oct 12, 2019
context 你值得拥有
|
9
reus Oct 12, 2019
|