美文网首页
常见数据结构

常见数据结构

作者: 杜子龙 | 来源:发表于2021-01-31 15:37 被阅读0次

    chan

    type hchan struct {
        qcount   uint           // 当前队列中剩余元素个数
        dataqsiz uint           //环形队列长度,即可以存放的元素个数
        buf      unsafe.Pointer // 环形队列指针
        elemsize uint16         // 每个元素的大小
        closed   uint32         // 标识关闭状态
        elemtype *_type         // 元素类型
        sendx    uint           // 队列下标,指示元素写入时存放到队列中的位置
        recvx    uint           // 队列下标,指示元素从队列的该位置读出
        recvq    waitq          // 等待读消息的goroutine队列
        sendq    waitq          // 等待写消息的goroutine队列
        lock     mutex          // 互斥锁,chan不允许并发读写
    }
    

    slice

    type slice struct {
        array unsafe.Pointer
        len   int
        cap   int
    }
    

    map

    type hmap struct { // map数据结构
        count      int            // 当前保存的元素个数
        ...
        B          uint8          // 指示bucket数组的大小
        ...
        buckets    unsafe.Pointer // bucket数组指针,数组的大小为2^B
        oldbuckets unsafe.Pointer // bucket数组指针,渐进式扩容时用来指向旧的bucket数组
    }
    type bmap struct { // bucket数据结构
        tophash  [8]uint8 // 存储哈希值的高8位
        data     [1]byte  // key value数据:key/key/key/.../value/value/value/...
        overflow *bmap    // 溢出bucket的地址
    }
    

    相关文章

      网友评论

          本文标题:常见数据结构

          本文链接:https://www.haomeiwen.com/subject/ycdrtltx.html