go_channel流程图
2021-10-13 13:53:18 0 举报
go channel 流程图
作者其他创作
大纲/内容
Y
向channel发送数据流程
send
gopark
阻塞调用
获取第一个等待协程
unlock
N
recvq有等待接收的协程
return false
chan是否已经关闭
return true
return 数据是否发送成功
gopark协程挂起
panic
chansend
chan的buff已经满了
等待被唤醒
sendx++qcount++
lock
以阻塞的方式调用?
chan已经满了
获取sudog
入队sendq
从channel获取数据
将数据放入sendx
chan == nil
收藏
收藏
0 条评论
回复 删除
下一页