go-channel行为总结
unbufferd channel
-
未被关闭的channel:
- 发送:阻塞,直到接收者从channel将数据取走
- 接收:阻塞,直到有发送者将数据发到channel
-
已被关闭的channel:
- 发送:panic
- 接收:数据全部被接收后,再读取会直接读到0值
buffered channel
- 未满的channel:
- 发送:无阻塞
- 接收:无阻塞
- 已满的channel:
- 发送:阻塞,直到有新的缓存空间
- 接收:无阻塞
- 空channel:
- 发送:无阻塞
- 接收:阻塞,直到有新的数据到达
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。