# 并行

**并发执行多个代码块,返回结果数组。**

```xuantie
设 汇总 = 并行 {
    { 时.睡(500); 返 "A" }
    { 时.睡(300); 返 "B" }
    { 返 "C" }
}
// 汇总 = ["A", "B", "C"]
```

## 你可以……

- **只要并发、不要结果**——当语句写,配通道收数据:

```xuantie
设 ch = 道(2)
并行 {
    { ch.发(10) }
    { ch.发(20) }
}
示(ch.收() + ch.收())
```

- **分支里再套异步任务**——分支可以是任意语句,包括 `异步` 块:

```xuantie
设 t = 并行 {
    异步 {
        设 a = 异步 { 时.睡(200); 返 "甲" }
        等待(a)
    }
    异步 { 时.睡(100) }
}
等待(t)
```

## 注意

- 各分支跑在隔离的环境副本上,分支内对外层变量的修改不会汇总回去——跨分支收数据用返回数组或通道,别用共享变量累加。
- 结果数组按分支的书写顺序排列,不按完成先后。

## 相关

[异步](异步.md) · [等待](等待.md) · [道](道.md)