qcount uint
当前队列中剩余元素个数dataqsiz uint
环形队列长度,即缓冲区的大小,即make(chan T,N)中的N.buf unsafe.Pointer
环形队列指针elemsize uint16
每个元素的大小closed uint32
表示当前通道是否处于关闭状态。创建通道后,该字段设置为0,即通道打开; 通过调用close将其设置为1,通道关闭。elemtype *_type
元素类型,用于数据传递过程中的赋值sendx uint
和recvx uint
是环形缓冲区的状态字段,它指示缓冲区的当前索引 - 支持数组,它可以从中发送数据和接收数据。recvq waitq
等待读消息的goroutine队列- sendq waitq // 等待写消息的goroutine队列 lock mutex // 互斥锁,为每个读写操作锁定通道,因为发送和接收必须是互斥操作。