摘要: go并发编程 Mutex几种状态 mutexLocked 表示互斥锁的锁定状态 mutexWoken 唤醒锁 mutexStarving 当前互斥锁进入饥饿状态 mutexWaiterShift 统计阻塞在这个互斥锁上的goroutine的数目 互斥锁无冲突是最简单的情况了,有冲突时,首先进行自旋, 阅读全文
posted @ 2022-01-25 14:38 专职 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 代码案例 package main import ( "fmt" "net/http" _ "net/http/pprof" ) func main(){ for i := 0; i < 5; i++ { go func() { select { default: return } }() } go 阅读全文
posted @ 2022-01-25 11:50 专职 阅读(228) 评论(0) 推荐(0) 编辑
摘要: cond是什么 Cond实现了一种条件变量,可以使用在多个reader等待共享资源ready的场景,(如果只有一读一写,一个锁或者channel就搞定了) 每个Cond都会关联一个Lock(*sync.Mutex or *sync.RWMutex), 当修改条件或者调用Wait方法时,必须加锁以保护 阅读全文
posted @ 2022-01-25 10:52 专职 阅读(597) 评论(0) 推荐(0) 编辑