【发布时间】:2021-12-03 23:43:14
【问题描述】:
我有一个线程负责执行一些进程。我想让这些处理每 3 秒完成一次。我已经使用了下面的代码,但是当线程启动时,什么也没有发生。
我假设当我为我的计时器定义一个任务时,它会在时间间隔内自动执行ScheduledTask,但它根本不做任何事情。
我错过了什么?
class temperatureUp extends Thread
{
@Override
public void run()
{
TimerTask increaseTemperature = new TimerTask(){
public void run() {
try {
//do the processing
} catch (InterruptedException ex) {}
}
};
Timer increaserTimer = new Timer("MyTimer");
increaserTimer.schedule(increaseTemperature, 3000);
}
};
【问题讨论】:
-
您确定要创建
temperatureUp线程并在其上调用start()吗?这段代码对我来说很好。 -
为什么要同时使用线程和计时器?计时器在它自己的线程上运行
-
我认为你应该重新考虑你的程序的结构。您必须考虑一个全局计时器(不是针对每个线程)。如果这些过程花费的时间超过 3 秒怎么办?你将如何优雅地结束它们?您需要提供更多信息和更多代码:)
-
@AljoshaBre 我仍然不知道这段代码有什么问题。
标签: java multithreading timer