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
posted @   富0代  阅读(49)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
返回
顶部
点击右上角即可分享
微信分享提示