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