2_08_GLib库入门与实践_原子操作

GLib提供了一系列原子操作,适用于整数和指针类型,确保在多线程环境下不被中断。这些操作包括get、set、exchange、add以及bitwise运算,并且有特定的宏进行不同类型的原子操作。例如,g_atomic_int_get()用于获取整数值,g_atomic_pointer_compare_and_exchange()则用于比较并交换指针值。这些函数保证了数据在并发访问时的一致性。
摘要由CSDN通过智能技术生成

原子操作一般指不被中断的一个或一系列操作。

GLib原子操作特点

GLib提供了对整数和指针两种数据类型的原子操作。其操作特点如下:

  • 名称中包含int的宏可以在指向gint和guint的指针上运行
  • 名称中包含pointer的宏可以在指向任何指针大小的值的指针上操作
  • get、set和exchange可以用在gint及gpointer上
  • add可以用在gint和gsszie上
  • and、or、xor运算只能用在无符号整数(用gint和gssize存储)上。

原子操作函数列表

其函数列表如下:

gint 	g_atomic_int_get ()
void 	g_atomic_int_set ()
void 	g_atomic_int_inc ()
gboolean 	g_atomic_int_dec_and_test ()
gboolean 	g_atomic_int_compare_and_exchange ()
gint 	g_atomic_int_add ()
guint 	g_atomic_int_and ()
guint 	g_atomic_int_or ()
guint 	g_atomic_int_xor ()
gpointer 	g_atomic_pointer_get ()
void 	g_atomic_pointer_set ()
gboolean 	g_atomic_pointer_compare_and_exchange ()
gssize 	g_atomic_pointer_add ()
gsize 	g_atomic_pointer_and ()
gsize 	g_atomic_pointer_or ()
gsize 	g_atomic_pointer_xor ()
gint 	g_atomic_int_exchange_and_add ()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值