分类 Go 中的文章

Go语言之 atomic.Value如何不加锁保证数据线程安全?

很多人可能没有注意过,在 Go(甚至是大部分语言)中,一条普通的赋值语句其实不是一个原子操作。例如,在32位机器上写int64类型的变量就会有中间状态,它会被拆成两次写操作(汇编的MOV指令)——写低 32 位和写高 32 位。32机器上对int64进行赋值 如果一个线程刚写完低32位,还没来得……

阅读全文