go专家编程--数据结构chan
chan结构
type hchan struct {
qcount uint // 队列中剩余元素大小
dataqsiz uint // 队列大小
buf unsafe.Pointer // 环形队列指针
elemsize uint16 // 元素大小
elemtype *_type // 元素类型
sendx uint // 队列下标,写入队列位置
recvx unit // 队列下标,读队列位置
sendq waitq // 等待写消息的goroutine队列
recvq waitq // 等待读消息的goroutine队列
close uint32 // 关闭标示
mux mutex. // 锁
}
- 环形队列
- 等待队列(写会唤起读,读会唤起写)
- 类型信息
- 锁
chan读写
主要关注是不是缓存,是不是qcount等?
- 写
- 读
chan用法
- 单向
- select
select
{
case e:= <- chan1:
...
case e:= <- chan1:
...
default:
...
} - range
for e:= range elemRange
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix