golang如何实现__sync_fetch_and_add,如c(gcc buildin)?

时间:2018-01-25 15:07:47

标签: go atomic

在go的同步/原子库中,似乎c(gcc buildin)中没有像__sync_fetch_and_add这样的函数,它有

nutch parse

我们似乎只能通过func AddInt32(addr *int32, delta int32) (new int32) func AddInt64(addr *int64, delta int64) (new int64) func AddUint32(addr *uint32, delta uint32) (new uint32) func AddUint64(addr *uint64, delta uint64) (new uint64) func AddUintptr(addr *uintptr, delta uintptr) (new uintptr) func CompareAndSwapInt32(addr *int32, old, new int32) (swapped bool) func CompareAndSwapInt64(addr *int64, old, new int64) (swapped bool) ... 来实现它,是吗?

1 个答案:

答案 0 :(得分:0)

从AddXXX返回值中减去delta以获取原始值。