擅长:python、mysql、java
<p>霍布斯和克里克的回答尤其出色,但我觉得还有更多的话要说。在</p>
<p>WaitGroup是管理多个goroutine的一种非常常见的概念,它当然是常用的,甚至在许多情况下都是惯用的。你知道吗?能够打电话螺纹连接()可能确实比处理WaitGroups要好,因为它只是等待前面启动的一堆线程/goroutine。在</p>
<p>但是,togo的并发模型远不止于此。在</p>
<p>goroutine是专门为<em>而不是</em>设计的拥有所有权、层次或句柄的概念。他们是独立的,平等的,有责任结束自己的处决。这与强并发原语相结合,使Go的模型具有几乎无与伦比的灵活性。在</p>
<p>因此,如果您发现自己几乎每次使用goroutines时都在使用WaitGroups,那么您可能在建模和构建程序时没有充分利用并发性的优势,更有可能您只是使用goroutines来并行化计算。在</p>
<p>为了更直接地回答你的问题,WaitGroups与螺纹连接(),但是原始的低级构建块在Go的并发模型中更有用。毕竟,goroutine不是线程,它们的使用方式也不完全相同。在</p>