解锁 -- 3




概述也许很多人并不知道,i++ 其实并不是一个原子操作,甚至作为右值操作的 ++i 也并不是一个原子操作然而有时我们需要类似操作的原子性,如锁操作的过程中,原子性当然是必须的了 GCC 提供的原子操作 -- 加减运算与逻辑运算GCC 从 4.1.2 开始提供了 __sync_*系列的 built-in 函数,用于提供加减和逻辑运算的原子操作 type __sync_fetch_and_add (type *ptr, type value, ...); type __sync_fetch_and_sub (type *ptr, type value, ...); type __sync_fetch_and_or (type *ptr, type value, ...); type __sync_fetch_and_and (type *ptr, type value, ...); type __sync_fetch_and_xor (type *ptr, type value, ...); type __sync_fetch_and_nand (type *ptr, type value, ...);  type __sync
#技术帖    #c语言    #技术分享    #锁   



京ICP备15018585号