GoLang之图解channel之数据结构

夏沐沐

关注

阅读 81

2022-05-05

文章目录

图解channel之数据结构

注:本文以Windos上Go SDK v1.18进行讲解

func f() {
    ch := make(chan int)
    ...
}

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

v <- ch1

在这里插入图片描述
在这里插入图片描述

type hchan struct {
    qcount   uint           // 数组长度,即已有元素个数
    dataqsiz uint           // 数组容量,即可容纳元素个数
    buf      unsafe.Pointer // 数组地址
    elemsize uint16         // 元素大小
    closed   uint32
    elemtype *_type // 元素类型
    sendx    uint   // 下一次写下标位置
    recvx    uint   // 下一次读下标位置
    recvq    waitq  // 读等待队列
    sendq    waitq  // 写等待队列
    lock     mutex
}

在这里插入图片描述
在这里插入图片描述

精彩评论(0)

0 0 举报