使用或不使用带有无限循环的join()方法

时间:2014-01-30 00:21:09

标签: c++ multithreading class infinite-loop

假设对象X应该永远运行。 X正在运行内部具有无限循环的线程,因此程序永远不会退出。

我的问题是:完全使用join()方法是一个好习惯,例如,在解构器中,或者更有意义的做一些像

这样的事情
int main() {
   X myX;
   while(1) {
   }
   return 0;
}

这两种方法之间有什么不同吗?

2 个答案:

答案 0 :(得分:1)

如果程序的某些部分需要等待运行直到线程退出,您可能需要调用join()。它还使线程对象可销毁,因此您不会创建内存泄漏。未加入的线程就像僵尸进程和浪费资源。

答案 1 :(得分:1)

有时它是必需的,通常不是。如果你可以设计你的应用程序,那就更好了。