Golang标准库学习——sync/atomic

本文介绍了Golang标准库`sync/atomic`,它提供了原子级内存操作,包括载入、存储、增或减、交换和比较并交换。这些操作在并发编程中用于保证数据的安全性,比使用锁更高效。文章详细阐述了每种操作的函数及适用的数据类型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package atomic

import "sync/atomic"

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

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

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

相比于使用锁,在条件允许的情况下,使用原子操作的效率会更高

atomic包能对一些类型进行原子操作,包括int32, int64, uint32, uint64, uintptr, unsafe.Pointer六种类型。原子操作包括增或减、交换、比较并交换、载入、存储五种操作。

一、载入

载入包含以下六个函数,分别是对上述六种数据类型的操作。

func LoadInt32(addr *int32) (val int32)
func LoadInt64(addr *int64) (val int64)
func LoadUint32(addr *uint32) (val uint32)
func LoadUint64(addr *uint64) (val uint64)
func LoadUintptr(addr *uintptr) (val uintptr)
func LoadPointer(addr *unsafe.Pointer) (val unsafe.Pointer)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值