背景
在写代码的时候,我们很多时候都会用到channel,但是channel是如何实现的呢?
基于上一篇文章
Go语法实现分析之chan、go func、类型转换_程序员红豆的博客-优快云博客声明、初始化代码,我们都懂,但是它背后是怎么实现的呢?https://blog.youkuaiyun.com/qq_37186127/article/details/125521611我们来分析分析channel的实现
过程
我们先看chan.go的hchan结构
type hchan struct {
qcount uint // total data in the queue
dataqsiz uint // size of the circular queue
buf unsafe.Pointer // points to an array of dataqsiz elements
elemsize uint16
closed uint32
elemtype *_type // ele