首先,阐明渠道的作用:用于Go Corporations之间的沟通。
GO语言的最大特征是支持高分子:Goroutine和频道是高并发的重要部分。
简单地执行函数并发是毫无意义的。函数与要交换的函数之间的含义以反映并发执行的函数的含义。
如果Goroutine是GO程序并发的执行者,则是它们之间的连接。这是一种通信机制,允许一个Goroutine向另一个Goroutine发送特定值。
此外,有必要清楚地知道GO的复杂理念,并记住以下原则:使用通信共享记忆,而不是共享记忆进行通信。
在找出通道的作用之后,让我们研究Goframe框架中Gqueue的特征(以下称为GF)。
起重机格式动态动态并发症队列
Gqueue也可以设置为固定尺寸队列,这与标准库通道没有什么不同。
简而言之,也可以实现频道实现的功能。
Gqueue是安全的,通常用于多个Goroutine数据通信,并支持动态队列大小。
为什么不使用标准库频道,使用Gqueue?
Gqueue的基本实现是基于Glist的动态大小的特征。当队列已满或队列为空时,读取数据将被阻塞。
Glist是并发的链接链接,它支持关闭并发安全性的特征。当切割并发安全性的特征与普通链接列表相同时,在存储和读取数据时不会引起阻塞。
选择{}的作用可以防止进程破坏
如下图所示,SELECT {}可以防止过程破坏,GTIMER一直在产生数据,并且FOR循环中的选择是消费者数据。
通过本文,我们知道渠道的概念和作用。我还知道Gqueue的最底层实现和特征,以及g式和渠道的比较。两者的特征是什么。
感谢您的阅读,欢迎大家连续三家公司:类似,收藏家,硬币投资(关注)!
原始:https://juejin.cn/post/7103502362429358116