package atomic

import "sync/atomic"

atomic包提供了底层的原子级内存操作,对于同步算法的实现很有用。

这些函数必须谨慎地保证正确使用。除了某些特殊的底层应用,使用通道或者sync包的函数/类型实现同步更好。

应通过通信来共享内存,而不通过共享内存实现通信

被SwapT系列函数实现的交换操作,在原子性上等价于:

old = *addr
*addr = new
return old
CompareAndSwapT系列函数实现的比较-交换操作,在原子性上等价于:
if *addr == old {
    *addr = new
    return true
}
return false
AddT 系列函数实现加法操作,在原子性上等价于:

*addr += delta
return *addr
LoadT和StoreT系列函数实现的加载和保持操作,在原子性上等价于:"return addr"和"addr = val"。

练习案例:

go 原子性操作

参考手册

https://studygolang.com/pkgdoc


code
64 声望2 粉丝

生命的意义并不刻意在什么地方停留