首页 > TAG信息列表 > Golang1.17

009-Golang1.17源码分析之goroutine

Golang1.17源码分析之goroutine-009 Golang1.17 学习笔记009 包位置:runtime/runtime2.go 全局变量 g0 主协程、m0 工作线程 P 里面只是有个本地 runq,全局的 runq 存储在 sched 中 获取任务顺序,先从 m 自身 p 中的 runq 获取,没有就去全局 sched 中获取,没有再去其他 q 中拿一

007-Golang1.17源码分析之mutex

Golang1.17源码分析之mutex-007 Golang1.17 学习笔记007 源代码:sync/mutex.go 数据结构: const ( // 锁标识位(state的最后一位) // Mutex.state & mutexLocked==1表示已经上锁;Mutex.state & mutexLocked==0表示已经未锁 mutexLocked = 1 << iota // mutex is lo

006-Golang1.17源码分析之select

Golang1.17源码分析之select-006 Golang1.17 学习笔记006 源码地址:runtime/select.go 数据结构: type scase struct { c *hchan // chan elem unsafe.Pointer // data element } 核心函数:selectgo() order0 为一个两倍 cas0 数组长度的 buffer,保存 scase 随机