sync.go 404 B

12345678910111213141516171819202122
  1. package mhayaSync
  2. import goSync "sync"
  3. // WaitGroup 封装 sync.WaitGroup,提供更简单的 API
  4. type WaitGroup struct {
  5. wg goSync.WaitGroup
  6. }
  7. // Add 添加一个非阻塞的任务,任务在新的 Go 程执行
  8. func (wg *WaitGroup) Add(fn func()) {
  9. wg.wg.Add(1)
  10. go func() {
  11. defer wg.wg.Done()
  12. fn()
  13. }()
  14. }
  15. // Wait 等待所有任务执行完成
  16. func (wg *WaitGroup) Wait() {
  17. wg.wg.Wait()
  18. }