Channel操作状态

【编者的话】Go Channel 操作状态以及返回结果的总结

操作 状态 结果
nil 阻塞
开启并不为空 获得对应值
开启并为空 阻塞
关闭 默认值, false
只能写入 编译错误
nil 阻塞
开启并塞满 阻塞
开启并未塞满 写入对应值
关闭 panic
只能接收 编译错误
关闭 nil panic
关闭 开启并不为空 关闭; 读取对应值直到channel为空, 之后读取时输出默认值
关闭 开启并为空 关闭; 读取时输出默认值
关闭 关闭 panic
关闭 只能接收 编译错误

References:

  • Concurrency in Go: Tools and Techniques for Developers 1st Edition

你可能感兴趣的:( Channel操作状态)