如何在C中实现这种情况?

时间:2013-11-09 15:15:45

标签: c multithreading

我有两个应该并行运行的函数A和B.如果a发生在A,它应该设置变量eventa。如果b发生B,则应设置eventb。我在while循环中检查eventa or eventb并且设置eventa or eventb时执行某些操作非常重要,此检查功能也应该是一个线程,与A和B同时运行。 我以为我应该把A和B写成线程让它们并行运行并定义两个全局变量eventaeventb并锁定它们。我错了吗?这是解决这个问题的方法吗? 这是我认为应该做的算法:

  thread A{
    while(1)
    {
    if(a){
      lock eventa;
      set eventa;
      unlock eventb;
         }
    }
   }


thread B{
while(1)
{

if(b){
  lock eventb;
  set eventb;
  unlock eventb;
     }
}

thread check {
while(1)
 {
if(eventa or eventb)
  { if(eventa)
      { lock eventa;
        unset eventa;
      } else if(eventb)
      { lock eventb;
        unset eventb;
      }
     call foo;
  }
 }
}

0 个答案:

没有答案
相关问题