假设对象X应该永远运行。 X正在运行内部具有无限循环的线程,因此程序永远不会退出。
我的问题是:完全使用join()方法是一个好习惯,例如,在解构器中,或者更有意义的做一些像
这样的事情int main() {
X myX;
while(1) {
}
return 0;
}
这两种方法之间有什么不同吗?
答案 0 :(得分:1)
如果程序的某些部分需要等待运行直到线程退出,您可能需要调用join()
。它还使线程对象可销毁,因此您不会创建内存泄漏。未加入的线程就像僵尸进程和浪费资源。
答案 1 :(得分:1)
有时它是必需的,通常不是。如果你可以设计你的应用程序,那就更好了。