前置知识: Go

Channel原理

00:00
1 min Advanced 2026/6/14

Channel底层实现与调度

1. Channel 结构

type hchan struct {
  qcount   uint
  dataqsiz uint
  buf      unsafe.Pointer
  sendx    uint
  recvx    uint
  sendq    waitq
  recvq    waitq
  lock     mutex
}

2. 发送与接收

  • 无缓冲:发送方阻塞直到接收就绪
  • 有缓冲:缓冲区满时发送方阻塞
  • 关闭 channel接收获取

3. select 实现

随机选择一个就绪的 case 执行

知识检测

学习进度

-- 已学文档
--% 知识覆盖率

学习推荐

专注模式