G

GolangRoadmap

V1

2022/06/29阅读:6主题:全栈蓝

《Go题库·14》WaitGroup的坑

题目解析 GOLANG ROADMAP社区

答案(engine)

① Add一个负数

如果计数器的值小于0会直接panic

② Add在Wait之后调用

比如一些子协程开头调用Add结束调用Wait,这些 Wait无法阻塞子协程。正确做法是在开启子协程之前先Add特定的值。

③ 未置为0就重用

WaitGroup可以完成一次编排任务,计数值降为0后可以继续被其他任务所用,但是不要在还没使用完的时候就用于其他任务,这样由于带着计数值,很可能出问题。

④ 复制waitgroup

WaitGroup有nocopy字段,不能被复制。也意味着WaitGroup不能作为函数的参数。

分类:

后端

标签:

Golang

作者介绍

G
GolangRoadmap
V1