java - 线程只运行一次

标签 java multithreading exception

当线程完成后,您不能使用 start() 方法再次运行它:它会抛出异常。谁能解释一下,为什么?这种架构决策背后的原因是什么?

最佳答案

因为让代码在一个单独的线程中执行的方法不是创建一个线程,这与线程是什么的系统 View 有关(绿色线程和系统线程的区别有无穷无尽的细节),而是创建一个Runnable ,并让它由线程执行。

为了获得最佳代码(因为创建线程非常耗时),我什至建议您不要直接让线程执行您的 Runnable,而应该让 ExecutorService 来执行。 ,这将允许您使用线程池而无需担心所有这些细节。

关于java - 线程只运行一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2689101/

相关文章:

java - 有没有其他类似的实现,比如 commons-chain?

java - 具有多个 where 条件的右外连接

java - 向自定义对象数组添加方法

multithreading - Spark 中每个任务的 CPU 数量

ios - NSRangeException : Call Stack Not Showing Line Number 错误

java - euler 项目 #10 无法在 java 上得到答案

c++ - 执行 int 3 中断会停止 Linux 上的整个进程还是仅停止当前线程?

python - 如何运行多线程Python脚本

c++ - 如果没有人调用该函数,为什么我会得到 First-chance 异常?

exception - 如何在带有 goto 或类似语言的解释器中实现 Try/Except/Finally?