找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 4019|回复: 0

关于7cat同学的原子结构测试实例

[复制链接]
发表于 2011-6-15 10:07:35 | 显示全部楼层 |阅读模式
在windows下:以下代码能借助原子操作锁完成计数器的正常运作。(感谢7cat支持)在这里记录一下。
  1. #include "stdafx.h"
  2. #include <Windows.h>
  3. long nCount = 0;
  4. extern "C"
  5. {
  6.         LONG _InterlockedIncrement( LONG* pn );
  7.         LONG _InterlockedDecrement( LONG* pn );
  8. };
  9. DWORD WINAPI Add(PVOID pvParam)
  10. {
  11.         for(int i = 0; i<1000; i++)
  12.         {
  13.                 _InterlockedIncrement(&nCount);
  14.         }
  15.         return 0;
  16. }
  17. int _tmain(int argc, _TCHAR* argv[])
  18. {
  19.         nCount = 0;
  20.         HANDLE* hThreadID = new HANDLE[10];   
  21.         for(int i = 0; i < 10; i++)
  22.         {
  23.                 DWORD   dwThreadID = 0;   
  24.                 HANDLE hThread = CreateThread(NULL, 0, Add, NULL, 0, &dwThreadID);
  25.                 hThreadID[i] = hThread;
  26.         }
  27.         WaitForMultipleObjects(10, hThreadID, TRUE, INFINITE);
  28.         printf_s("[Main]nCount=%d", nCount);
  29.         getchar();
  30.         return 0;
  31. }
复制代码
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

Archiver|手机版|小黑屋|ACE Developer ( 京ICP备06055248号 )

GMT+8, 2024-5-8 06:54 , Processed in 0.150596 second(s), 8 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表