在同一线程上两次调用 start 方法是否合法?
下面的代码导致我在程序中第二次调用方法。java.lang.IllegalThreadStateException: Thread already started
start()
updateUI.join();
if (!updateUI.isAlive())
updateUI.start();
这种情况在第二次调用时发生。我已经多次单步执行它,线程被调用并完全运行到完成,然后单击。updateUI.start()
updateUI.start()
调用可以避免错误,但会导致线程在UI线程(调用线程,如SO上其他文章中提到的)中运行,这不是我想要的。updateUI.run()
一个线程只能启动一次吗?如果是这样,如果我想再次运行线程,该怎么办?这个特定的线程在后台做一些计算,如果我不在线程中做,而不是在UI线程中完成,并且用户有一个不合理的长时间等待。