设为首页 加入收藏

TOP

GO 语言中 chan 的理解(五)
2023-07-23 13:25:05 】 浏览:76
Tags:chan
;      // 当 goroutine 被唤醒时,重新获取锁         lock(&c.lock)         // 检查 chan 是否已经关闭         if c.closed != 0 && c.qcount == 0 {             unlock(&c.lock)             return false, false         }         // 从接收等待队列中取出 sudog         sg = c.recvq.dequeue()         if sg == nil {             throw("chan receive inconsistency")         }         // 从队列中取出数据         qget(c, i, ep)     } else {         // 从队列中取出数据         qget(c, i, ep)     }     // 更新接收位置     c.recvx++     // 更新队列中的元素数量     c.qcount--     // 释放锁     unlock(&c.lock)     return true, true }

首页 上一页 2 3 4 5 下一页 尾页 5/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Go 语言 context 都能做什么? 下一篇提升性能的利器:深入解析Section..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目