我尽量让一个超时的C++程序,就像这样:C++多线程块主线程
...
void ActThreadRun(TimeOut *tRun)
{
tRun->startRun();
}
...
void otherFunction()
{
TimeOut *tRun = new TimeOut();
std::thread t1 (ActThreadRun, tRun);
t1.join();
while(tRun->isTimeoutRUN())
{
manageCycles();
}
}
...
超时之后3个secondes做的,而tRun->isTimeoutRUN()
改变自己的状态。
但是,如果我“join
”线程,我阻止此程序,所以这是等待的时间(3秒)继续之前,所以它从来没有在我,而仿羔皮呢去...
但是,如果我不要“join
”这个线程,线程永不超时,并且tRun->isTimeoutRUN()
永不改变,所以它无限运行。
我不是线程好,所以我问你的帮助,因为我不明白,在这个教程中C++
泰!
尝试添加while循环内存屏障。编译器可以将值放入寄存器 – thisisdog