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

Remember · · 939 次点击
更多评论
- 这个属于`Golang基础`,也是常被多数开发者忽略的方面,解释如下 ```go mutexLocked = 1 << iota = 1 << 0 = 1 * 2的0次方 = 1 mutexWoken = 1 << iota = 1<< 1 = 1 * 2的1次方= 2 mutexStarving = 1 << iota = 1 << 2 = 1 * 2的2次方 = 4 mutexWaiterShift = iota = 3 ``` - 具体可以查阅以下文章 [Go101 - 常量和变量 - 在常量声明中使用iota](https://gfw.go101.org/article/constants-and-variables.html) > iota是Go中预声明(内置)的一个特殊的有名常量。 iota被预声明为0,但是它的值在编译阶段并非恒定。 当此预声明的iota出现在一个常量声明中的时候,它的值在第n个常量描述中的值为n(从0开始)。 所以iota只对含有多个常量描述的常量声明有意义。
#1