找回密码
 立即注册→加入我们

QQ登录

只需一步,快速开始

搜索
热搜: 下载 VB C 实现 编写
查看: 3546|回复: 3

原子操作函数

[复制链接]
发表于 2015-7-21 20:04:58 | 显示全部楼层 |阅读模式

欢迎访问技术宅的结界,请注册或者登录吧。

您需要 登录 才可以下载或查看,没有账号?立即注册→加入我们

×
函数名        <==>        等价形式
InterlockedIncrement        A++
InterlockedDecrement        A--
InterlockedExchange                A=B
InterlockedExchangeAdd        A+=B
InterlockedExchangeSubtract        A-=B
InterlockedCompareExchange        A==C?B:A
InterlockedAnd        A&=B
InterlockedOr        A|=B
InterlockedXor        A^=B
InterlockedAdd        A+=B
InterlockedExchangePointer        A=B
InterlockedCompareExchangePointer        A==C?B:A
InterlockedBitTestAndSet        A|=2^B
InterlockedBitTestAndReset        A&(2^B)

其他的函数都是内部实现了,,
其实还有针对链表操作的,然而这里我没算在内
回复

使用道具 举报

发表于 2015-7-22 15:34:43 | 显示全部楼层
补充解释:原子操作的意义是在多线程环境下操作多个线程都可能操作的变量,使操作过程不会被其它线程打断。
有时候多个线程一起对一个变量进行加法的时候,通常都是由CPU核心从内存中读取变量,加上一个值,然后再存回到内存,搞不好的话多个线程(比如是两个线程)同时读取一个变量(比如值是2),然后加上一个值(比如是1)之后一起存回内存,变量的值就会出现异常(变成了3,但是因为是多个线程一起运行的,它的值应该是4)。
原子操作解决了这个问题。
回复 赞! 靠!

使用道具 举报

发表于 2015-7-31 00:57:39 | 显示全部楼层
好高大上的概念……
那有没有质子操作、中子操作呀?
回复 赞! 靠!

使用道具 举报

发表于 2015-8-12 15:39:43 | 显示全部楼层
分子操作啊
回复 赞! 靠!

使用道具 举报

本版积分规则

QQ|Archiver|小黑屋|技术宅的结界 ( 滇ICP备16008837号 )|网站地图

GMT+8, 2024-11-22 01:42 , Processed in 0.029986 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表