元始天尊 发表于 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)

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

0xAA55 发表于 2015-7-22 15:34:43

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

如月桃 发表于 2015-7-31 00:57:39

好高大上的概念……
那有没有质子操作、中子操作呀?

FFFFFFFE 发表于 2015-8-12 15:39:43

分子操作啊
页: [1]
查看完整版本: 原子操作函数