//增減
(1) long interlockedincrement(in out long volatile *lpaddend);
lpaddend為長整型變數的位址,返回值為原始值。這個函式的主要作用是原子性自增(相當於++操作)。
(2) long interlockeddecrement(in out long volatile *lpaddend);
lpaddend為長整型變數的位址,返回值為原始值。這個函式的主要作用是原子性自減(相當於--操作)。
(3) long interlockedexchangeadd ( lplong addend, long increment );
addend為長整型變數的位址,increment為想要在addend指向的長整型變數上增加的數值(可以是負數)。這個函式的主要作用是保證這個加操作為乙個原子訪問。
//交換
(4) long interlockedexchange( lplong target, long value );
用第二個引數的值取代第乙個引數指向的值。函式返回值為原始值。
(5) pvoid interlockedexchangepointer( pvoid *target, pvoid value );
用第二個引數的值取代第乙個引數指向的值。函式返回值為原始值。
//比較交換
(6) long interlockedcompareexchange(
lplong destination, long exchange, long comperand );
如果第三個引數與第乙個引數指向的值相同,那麼用第二個引數取代第乙個引數指向的值。函式返回值為原始值。
(7) pvoid interlockedcompareexchangepointer (
pvoid *destination, pvoid exchange, pvoid comperand );
如果第三個引數與第乙個引數指向的值相同,那麼用第二個引數取代第乙個引數指向的值。函式返回值為原始值。
Interlocked系列函式
1.增減操作 long cdecl interlockedincrement long volatile addend long cdecl interlockeddecrement long volatile addend 返回變數執行增減操作之後的值。long cdec interlockede...
原子訪問 Interlocked系列函式
我們都知道,windows是乙個搶占式的多執行緒環境,因此系統可能會在任意時刻暫停乙個執行緒,切換到另乙個執行緒讓新的執行緒繼續執行。請看這段 2個執行緒函式,各有乙個for迴圈,1000w次,那麼,我們或許會認為,最終輸出的 g x的值會是 1000w 1000w 20000000?但是,在多執行...
Interlocked類的靜態方法
1.public static class interlocked2.add int32,int32 對兩個 32 位整數進行求和並用和替換第乙個整數,上述操作作為乙個原子操作完成。add int64,int64 對兩個 64 位整數進行求和並用和替換第乙個整數,上述操作作為乙個原子操作完成。3.c...