我有以下内容:
f1()
{
while(1)
{
call f(2) if hardware interrupt pin goes high
}
}
f2()
{
if( th() not started )
{
start thread th()
}
else
{
return thread th() status
}
}
th()
{
time-consuming operation
}
目前,我使用以下内容在 f2() 中启动一个结构:
static struct SharedData shared;
if( shared == NULL)
{
initialize shared
}
然后我将一个指向共享的指针传递给线程。然后线程会定期更新共享。然后 f2() 将根据shared的元素知道 th() 是否已启动,并将通过读取shared来检查 th() 的状态。
让我们假设shared的元素之一是提供线程安全的互斥锁。这是一个好的解决方案吗?有没有更优雅的方式来做到这一点?我已经测试了代码并且它可以工作。我在这里只需要一些专家建议。
谢谢,