当线程完成后,您不能使用 start() 方法再次运行它:它会抛出异常。谁能解释一下,为什么?这种架构决策背后的原因是什么?
最佳答案
因为让代码在一个单独的线程中执行的方法不是创建一个线程,这与线程是什么的系统 View 有关(绿色线程和系统线程的区别有无穷无尽的细节),而是创建一个Runnable ,并让它由线程执行。
为了获得最佳代码(因为创建线程非常耗时),我什至建议您不要直接让线程执行您的 Runnable,而应该让 ExecutorService 来执行。 ,这将允许您使用线程池而无需担心所有这些细节。
关于java - 线程只运行一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2689101/