在我的 Java 应用程序中,我有一个 Runnable,例如:
this.runner = new Runnable({
@Override
public void run() {
// do something that takes roughly 5 seconds.
}
});
我需要大约每 30 秒在一个单独的线程中运行一次(尽管这可能会有所不同)。代码的本质是我可以运行它并忘记它(无论它成功还是失败)。我在应用程序中将其作为一行代码执行,如下所示:
(new Thread(this.runner)).start()
现在,这工作正常。但是,我想知道在每个线程实例完成运行后是否应该对其进行任何类型的清理?我正在对这个应用程序进行 CPU 分析VisualVM,我可以看到,在 1 小时的运行时间过程中,创建了很多线程。这种担忧是否有效,或者一切都好吗?
new Thread注意我开始 a而不是简单地定义this.runner为 a的原因Thread是,我有时需要this.runner同时运行两次(在第一次运行调用完成之前),如果我定义this.runner为 a ,我就不能这样做Thread,因为单个Thread对象只能初始执行完成后再次运行。
忽然笑
慕村225694
相关分类