前言
TaskGroup是 TaskPool 提供的批量任务管理工具,可以将多个并发任务组成一组一次性执行,并聚合所有结果。适合“分而治之“的并行计算场景。
本文以「猫猫大作战」的并行合并计算为锚点,讲解 TaskGroup 的使用。
提示:本系列不讲 ArkTS 基础语法与环境搭建,假设你已跟完第 1–147 篇。本篇是阶段四第 148 篇。
一、TaskGroup 基本用法
1.1 批量执行
import { taskpool } from '@kit.ArkTS'; @Concurrent function computeScore(level: number): number { return Math.pow(3, level - 1) * 10; } async function batchCompute() { const group = new taskpool.TaskGroup(); group.addTask(new taskpool.Task(computeScore, 1)); group.addTask(new taskpool.Task(computeScore, 3)); group.addTask(new taskpool.Task(computeScore, 5)); const results = await taskpool.execute(group); // results: [10, 90, 810] }1.2 适用场景
| 场景 | TaskPool 单任务 | TaskGroup 批量 |
|---|---|---|
| 执行次数 | 单次 | 批量并行 |
| 结果处理 | 单个 Promise | 结果数组 |
| 适用场景 | 单一运算 | 分治/MapReduce |
二、总结
TaskGroup 批量执行并发任务,聚合结果数组。
核心要点:
new taskpool.TaskGroup()创建组group.addTask(task)添加任务taskpool.execute(group)批量执行
下一篇预告:第 149 篇将深入 ArrayBuffer——二进制缓冲操作。
如果这篇文章对你有帮助,欢迎点赞👍、收藏⭐、关注🔔,你的支持是我持续创作的动力!
相关资源:
- TaskPool API 参考
- 开源鸿蒙跨平台社区
- 第 147 篇:taskpool.execute
- 第 149 篇:ArrayBuffer