先看看golang文档说明:

golang语言中sync/atomic包的使用

atomic包提供了底层的原子级内存操作

类型共有六种:int32, int64, uint32, uint64, uintptr, unsafe.Pinter

操作共五种:增减, 比较并交换, 载入, 存储,交换

func Main_atomic() {
	var a int32
	fmt.Println("a:",a)
	//原子操作:加
	new_a := atomic.AddInt32(&a, 3)
	fmt.Printf("原子操作加  a:%d,\t new_a:%d",a,new_a)

	//原子操作:减
	new_a=atomic.AddInt32(&a,-1)
	fmt.Printf("\n原子操作减 a:%d,\t new_a:%d\n",a,new_a)

	//原子操作:比较并交换操作
	var b int32
	fmt.Println("b:",b)
	result := atomic.CompareAndSwapInt32(&b, 0, 3) //如果old值(0)与b的值相同,则将new(3)赋值给b
	fmt.Println("比较结果:",result,"\tb:",b)
}

golang语言中sync/atomic包的使用

相关文章:

  • 2023-03-19
  • 2022-12-23
  • 2022-12-23
  • 2023-02-24
  • 2022-02-10
猜你喜欢
  • 2022-12-23
  • 2018-05-24
  • 2021-06-10
  • 2022-02-04
  • 2021-07-07
  • 2022-12-23
  • 2021-05-19
相关资源
相似解决方案