我儘量讓一個超時的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