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