摘要: channel的整体结构图 简单说明: buf是有缓冲的channel所特有的结构,用来存储缓存数据。是个循环链表 sendx和recvx用于记录buf这个循环链表中的发送或者接收的index lock是个互斥锁。 recvq和sendq分别是接收(<-channel)或者发送(channel <- 阅读全文
posted @ 2025-04-07 19:11 搁浅~浅浅浅 阅读(65) 评论(0) 推荐(0)
摘要: make和new的区别 (√) make和new都是用于创建新对象的内置函数, 但make用于创建引用类型的对象,返回的是一个已经初始化了的对象; 而new用于创建值类型的对象,返回的是一个指向新对象的指针。 1.初始化的区别 make和new都是golang用来分配内存的內建函数,且在堆上分配内存 阅读全文
posted @ 2025-04-07 17:31 搁浅~浅浅浅 阅读(52) 评论(0) 推荐(0)
摘要: map定义 map是一种key-value键值对的存储结构,其中key是不能重复的,其底层实现采用的是hash表。 map的数据结构 首先我们先列出源码结构关键字段,实现在 src/runtime/map.go: type hmap struct { count int // 元素的个数 B uin 阅读全文
posted @ 2025-04-07 17:13 搁浅~浅浅浅 阅读(193) 评论(0) 推荐(0)