将sync.WaitGroup包装一层,代码优雅一些
package main
import (
"fmt"
"sync"
)
type WaitGroupWrapper
struct {
sync
.WaitGroup
}
func (w
*WaitGroupWrapper
) Wrap(cb
func()) {
w
.Add(1)
go func() {
cb()
w
.Done()
}()
}
func main(){
w
:= &WaitGroupWrapper
{}
w
.Wrap(func (){
fmt
.Println("协程1")
})
w
.Wrap(func(){
fmt
.Println("协程2")
})
w
.Wait()
}
输出:
协程2
协程1
转载请注明原文地址: https://lol.8miu.com/read-26225.html