并发

Go 并发 #

Mutex #

type Mutex struct {
	state int32  // 状态
	sema  uint32 // 信号量
}
  • state (32 位)
    • waitersCount (29 位): 当前互斥锁上等待的 Goroutine 个数
    • mutexStarving (1 位): 当前的互斥锁进入饥饿状态
      • Goroutine 超过 1 ms 没有获取到锁,就会转为饥饿模式
    • mutexWoken (1 位): 从正常模式被从唤醒
    • mutexLocked (1 位): 互斥锁的锁定状态

本文访问量

本站总访问量

本站总访客数