1 Star 0 Fork 0

buddie/go-concurrent

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
con_func.go 447 Bytes
一键复制 编辑 原始数据 按行查看 历史
buddie 提交于 2024-03-12 16:57 . init
package go_concurrent
import "sync"
type conFunc struct {
fs []func()
wg *sync.WaitGroup
}
func ConcurrentFunc(f ...func()) *conFunc {
return &conFunc{
fs: f,
wg: new(sync.WaitGroup),
}
}
func (cf *conFunc) Add(f func()) {
cf.fs = append(cf.fs, f)
}
func (cf *conFunc) Aggregate(rf func()) {
n := len(cf.fs)
cf.wg.Add(n)
for _, f := range cf.fs {
go func(f func()) {
defer cf.wg.Done()
f()
}(f)
}
cf.wg.Wait()
rf()
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/buddie/go-concurrent.git
git@gitee.com:buddie/go-concurrent.git
buddie
go-concurrent
go-concurrent
main

搜索帮助