用户模式的线程同步原子访问:InterLocked互锁函数

来源:互联网 发布:淘宝卖保健品需要什么 编辑:程序博客网 时间:2024/05/22 00:12

(1) LONG InterlockedExchangeAdd ( LPLONG Addend, LONG Increment );

Addend为长整型变量的地址,Increment为想要在Addend指向的长整型变量上增加的数值(可以是负数)。这个函数的主要作用是保证这个加操作为一个原子访问。
(2) LONG InterlockedExchange( LPLONG Target, LONG Value );
用第二个参数的值取代第一个参数指向的值。函数返回值为原始值。
(3) PVOID InterlockedExchangePointer( PVOID *Target, PVOID Value );
用第二个参数的值取代第一个参数指向的值。函数返回值为原始值。
(4) LONG InterlockedCompareExchange( LPLONG Destination, LONG Exchange, LONG Comperand );
如果第三个参数与第一个参数指向的值相同,那么用第二个参数取代第一个参数指向的值。函数返回值为原始值。
(5) PVOID InterlockedCompareExchangePointer (PVOID *Destination, PVOID Exchange, PVOID Comperand );
如果第三个参数与第一个参数指向的值相同,那么用第二个参数取代第一个参数指向的值。函数返回值为原始值。

(6)LONG InterLockedIncrement(LPLONG lpAddend);  加1

(7)LONG InterLockedDecrement(LPLONG lpAddend); 减1

刚开始看时,不明白为什么要有Exchange的字眼,后来想明白了,原来Exchange体现在返回值上.象下面一样.

原创粉丝点击