不是很理解互斥锁mutex 里面那些常量的值

Remember · 2020-10-18 11:20:29 · 1031 次点击
更多评论
  • 这个属于Golang基础,也是常被多数开发者忽略的方面,解释如下
mutexLocked = 1 << iota = 1 << 0 = 1 * 20次方 = 1
mutexWoken = 1 << iota = 1<< 1 = 1 * 21次方= 2
mutexStarving = 1 << iota = 1 << 2 = 1 * 22次方 = 4
mutexWaiterShift = iota = 3
  • 具体可以查阅以下文章

Go101 - 常量和变量 - 在常量声明中使用iota

> iota是Go中预声明(内置)的一个特殊的有名常量。 iota被预声明为0,但是它的值在编译阶段并非恒定。 当此预声明的iota出现在一个常量声明中的时候,它的值在第n个常量描述中的值为n(从0开始)。 所以iota只对含有多个常量描述的常量声明有意义。

#1