22.原子操作
阿新 • • 發佈:2018-02-03
自增 locked col lock winapi system fin dword ret
- 變量自增
1 InterlockedIncrement(&num);
- 變量加一個指定數
1 InterlockedAdd(&num, 100);
完整代碼:
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <Windows.h> 4 5 int num = 0; 6 7 8 DWORD WINAPI add(void *p) 9 { 10 for (int i = 0; i < 10000; i++) 11 { 12 //InterlockedIncrement(&num); 13 InterlockedAdd(&num, 100); 14 } 15 16 return 0; 17 } 18 19 void main() 20 { 21 22 HANDLE hd[10]; 23 for (int i = 0; i < 10; i++) 24 { 25 hd[i] = CreateThread(NULL, 0, add, NULL, 0, NULL); 26 } 27 WaitForMultipleObjects(10, hd, TRUE, INFINITE); 28 29 printf("%d", num); 30 31 system("pause"); 32 }
22.原子操作