c++ - 等到函数完成后再继续 main(一个线程)

标签 c++ wait sleep

假设有一个单线程程序,它调用一个大的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

最佳答案

你把这个复杂化了很多,因为它已经是这样了

如您所说,它是单线程。控制权将传递给 functionLarge,并且在该函数完成之前不会返回。

您不需要做任何事情。不需要任何 boolwhile 循环。对于单线程,“等待”究竟是什么?

int main()
{
   doThis();
   nowDoThis();
}

关于c++ - 等到函数完成后再继续 main(一个线程),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38543240/

相关文章:

c++ - C++11 中友元模板类的 Visual C++ 错误

c++ - 如何使用 STL 将数组转换为 vector

c++ - 使用 pybind11 从 C++ 调用 Python 函数

java - Java中生产者-消费者代码的多线程没有给出正确的输出?

linux - 减少程序的 sleep() 函数

python - 如何检查键盘按钮是否收到垃圾邮件并在再次按下之前添加冷却时间

c++ - 我需要一个好的网站来学习 C++

Java 线程不响应notifyAll()

java - 为什么我在使用 wait 和 notification 在 java 中实现线程间通信时出现错误?

javascript - javascript中的 sleep 功能 - 不使用递归