原子操作一般指不被中断的一个或一系列操作。
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 ()