哪些数据类型本质上是原子的

six*_*man 1 go atomicity

我想知道Go中的哪些数据类型本质上是线程安全的(如果有的话).

我的假设是int,floats和bools是安全的,而复合类型则不是.

  • 我的假设是否正确?
  • 在改变复合类型与替换复合类型方面有不同的考虑因素吗?
  • 渠道怎么样?

谢谢.

jos*_*hlf 5

我不相信它们中的任何一个都保证是原子的,但有些可能是实际的(当然,通过原子我们的意思是从两个线程同时分配它们会产生一个或另一个值,而不是一些第三个值(例如每个值的位组合) - 我们并不意味着您可以进行原子比较存储或类似的东西).最好的办法是查看Go Memory Model.