# 道
**带缓冲通道类型,并发任务之间传值的管道。**
```xuantie
设 ch = 道(4)
ch.发("hello")
设 msg = ch.收()
```
## 你可以……
- **在 `异步` 块内阻塞收发**——编译器自动切换为阻塞版本,不占调度器:
```xuantie
设 ch = 道(3)
设 工 = 异步 {
示(ch.收() + ch.收())
}
ch.发(1)
ch.发(2)
等待(工)
```
- **用 `选` 等多通道**——第一个就绪的通道胜出,返回其下标:
```xuantie
设 i = 选([ch1, ch2], 1000)
若 i >= 0 { 示("有通道就绪") }
```
## 注意
* 本词是**保留字**:不能用作变量名、函数名、参数名等标识符(完整规则与清单见 [词法与基础语法](../手册/01_词法与基础语法.md#保留字不可作标识符))。
- 阻塞路径(非 `异步` 块)下收发是**非阻塞**的:`发` 满则丢弃,`收` 空则返回 `空`。要可靠收发,请在 `异步` 块内进行。
- `选` 超时返回 `-1`,使用前必须先判定,别拿去索引通道数组。
## 相关
[任务](任务.md) · [异步](异步.md) · [等待](等待.md) · [网络与并发编程指南](../08_网络与并发编程指南.md)