原子操作 -- 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语言    #技术分享    #锁   

200x200


信号量信号量与其他的 IPC (管道、FIFO、消息队列、域套接字)都有所不同,他是一个计数器,用于多进程对共享数据对象的访问当进程需要获得共享资源时,需要进行下列操作: 

#读书笔记    #技术帖    #linux    #unix   



京ICP备15018585号