让我们有一个单线程的程序,它调用一个大的functionLarge()
,它需要在调用者main
函数中的下一个代码行之前完成。假设功能很好地分解并且需要很长时间。
建议answer .wait()
,我想知道它是否优于:
bool done = false;
// returning true at the end, modifies bigObject by refrence
done = functionLarge(bigObject);
while(!done) { usleep(1000); }
//...can now continue
是否有更好的方法,没有返回bool
?
答案 0 :(得分:1)
你已经大大过度复杂了,因为已经是如何运作。
正如你所说,它的单线程。控制权将传递给bool
,并且在该功能完成之前不会返回。
你不需要做任何事情。无需任何while
或int main()
{
doThis();
nowDoThis();
}
循环。使用单个线程,将要做什么"等待",确切地说?
{{1}}