0

我有两个函数 A 和 B 应该并行运行。如果a发生在A它应该设置变量eventa。如果b发生在B它应该设置eventb。我正在检查eventa or eventb一个while循环,对我来说按设置做一些事情很重要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;
  }
 }
}
4

0 回答 0