sync.WaitGroup实现很简单,只有100多行的代码; 底层使用计数器信号量来实现同步。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Semaphore

n. 信号标; 旗语;
v. 打旗语; (用其他类似的信号系统) 发信号;
[例句]The definition of a shared memory and process shared data structure and built-in semaphore support.
有一个共享的内存定义和进程共享数据结构和内置的信号量的支持。


acquire
v. 获得; 购得; 获得; 得到;


release
v. 释放; 放出; 放走; 放开; 松开; 发泄; 宣泄;


php中的sem_acquire函数


参考:

sync.WaitGroup实现原理详解

Golang的sync.WaitGroup 实现逻辑和源码解析

golang sync.WaitGroup 底层实现