摘要: 有缓冲的通道相比于无缓冲通道,多了一个缓存的功能,如下图描述的一样: 从图上可以明显看到和无缓冲通道的区别,无缓冲必须两个Goroutine都进入通道才能进行数据的交换,这个不用,如果数据有,直接就能拿走。 运行结果: 因为哪一个worker先从通道中取值有系统自己进行调度的,所以每次运行的结果稍微 阅读全文
posted @ 2019-02-15 15:50 奋斗的大橙子 阅读(717) 评论(0) 推荐(0)
摘要: 前言: 上文中我们采用了【原子函数】已经【共享锁】两种方式分别对多个goroutine进行了同步,但是在go语言中提供了另一种更好的方式,那就是使用通道(Channel)。 一、通道是什么? 其实无论是原子函数还是共享锁都是通过共享内存的方式进行的同步、效率一般不高,而Go语言中则使用了通道,它是一 阅读全文
posted @ 2019-02-15 15:25 奋斗的大橙子 阅读(784) 评论(0) 推荐(0)