首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有多个线程和互斥锁的竞争条件

具有多个线程和互斥锁的竞争条件
EN

Stack Overflow用户
提问于 2014-04-23 15:12:48
回答 1查看 606关注 0票数 1
代码语言:javascript
复制
int iGlobe = 0;
...
void thread1Func()
{
  Lock(&Mutex1);
  if(iGlobe == 0)         //step-1
    someaction();
}
...
void thread2Func()
{
  Lock(&Mutex2);
  iGlobe = 5;             //step-2
}

假设,

1) Thread1执行step-1并进入睡眠状态

2)同时Thread2执行step-2并改变iGlobe的值

如何克服这种情况?

EN

回答 1

Stack Overflow用户

发布于 2014-04-23 15:19:36

对给定数据段的所有访问都必须在同一互斥锁上同步,否则就不会有“互斥”效应。因此,要修复您的代码,请将thread2Func更改为Lock(&Mutex1)

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23237348

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档