taskgroup:Go包,用于管理一组协作goroutine

时间:2024-05-03 08:12:14
【文件属性】:

文件名称:taskgroup:Go包,用于管理一组协作goroutine

文件大小:11KB

文件格式:ZIP

更新时间:2024-05-03 08:12:14

Go

任务组 *taskgroup.Group代表一组执行相关任务的goroutine。 可以将新任务随意添加到组中,并且呼叫者可以等待所有任务完成。 错误会在单个goroutine中自动收集并传递到用户提供的回调中。 这不能替代Go内置功能的全部通用性,但是可以简化一些常见的并发任务。 基本原理 Go以 , , 和标准库的包的形式提供了出色而强大的并发原语。 但是,在某些常见情况下,仅使用内置功能来管理goroutine生存期可能变得很笨拙。 例如,考虑复制大型目录树的情况:递归遍历源目录,创建并行目标目录结构,并旋转goroutine来同时复制每个文件。 这部分很简单: func copyTree ( source , target string ) error { err := filepath . Walk ( source , func ( path string , fi


【文件预览】:
taskgroup-default
----.github()
--------workflows()
----example_test.go(2KB)
----LICENSE(1KB)
----taskgroup.go(4KB)
----examples()
--------copytree()
----taskgroup_test.go(3KB)
----README.md(7KB)
----go.mod(49B)

网友评论