多线程出现数据混乱问题。

ahjkwangjincai 2012-11-24 02:14:15
UINT index = m_nID;
++m_nID;
AfxBeginThread(BeginProcess, &index);


就这么几句话,我实在想不出为什么传递给线程执行的参数index会出现重复的情况。求大神指点。

按我的想法应该是从0一直递增才对,可就是偶尔会出现一两个重复的数字。

注:m_nID是静态变量初始值为0;
...全文
138 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
I_ask_who 2012-11-24
  • 打赏
  • 举报
回复
因为,你每次传给Proc的index的地址是一样的....,后面的线程受到了++++后的值. 用new或者malloc吧...
傻X 2012-11-24
  • 打赏
  • 举报
回复
用 volatile int index看看还会出现这情况么
xumaojun 2012-11-24
  • 打赏
  • 举报
回复
不知道你上面的代码是在一个线程里循环多次调用还是在多个线程里可能同时调用,如果存在可能同时调用就要加同步互斥处理

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧