原子操作函数
函数名 <==> 等价形式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)
其他的函数都是内部实现了,,
其实还有针对链表操作的,然而这里我没算在内 补充解释:原子操作的意义是在多线程环境下操作多个线程都可能操作的变量,使操作过程不会被其它线程打断。
有时候多个线程一起对一个变量进行加法的时候,通常都是由CPU核心从内存中读取变量,加上一个值,然后再存回到内存,搞不好的话多个线程(比如是两个线程)同时读取一个变量(比如值是2),然后加上一个值(比如是1)之后一起存回内存,变量的值就会出现异常(变成了3,但是因为是多个线程一起运行的,它的值应该是4)。
原子操作解决了这个问题。 好高大上的概念……
那有没有质子操作、中子操作呀? 分子操作啊
页:
[1]