1. 首页
  2. 操作系统
  3. Linux
  4. golang开发中channel使用

golang开发中channel使用

上传者: 2020-09-29 13:34:47上传 PDF文件 56.62KB 热度 17次

channel使得并发编程变得简单容易有趣。一个channel可以理解为一个先进先出的消息队列。channel用来在协程[goroutine]之前传递数据,准确的说,是用来传递数据的所有权。意思跟方向是一致的,一个是数据进入channel,一个是数据从channel出去我们一直使用的无缓冲的channel,今天主要学习下有缓存的channel。有缓冲的channel,可以写入缓冲大小个数据,可以没有goroutine从channel读取。但是我们如果使用了有缓冲的channel,就可以利用channel的缓冲机制正常退出全部的goroutine了。打印success的时候,第一个goroutine已经将任务完成,循环9次将channel里面的数据读取出来,保证创建的goroutine都不会阻塞能够正常退出来。

用户评论