我必须每1小时使用一个线程运行一个作业。这项工作是读取文件夹中的文件。我创建了一个简单的线程
Thread t = new Thread() {
@Override
public void run() {
while(true) {
try {
Thread.sleep(1000*60*60);
//Implementation
} catch (InterruptedException ie) {
}
}
}
};
t.start();
每隔一小时运行一次,以便我可以调用该函数来读取文件。我想知道这种方法是好还是其他方法都不错
答案 0 :(得分:2)
您可以使用ScheduledExecutorService执行此任务,此处为Sample Example
答案 1 :(得分:0)
如果您只想使用Thread
,请尝试
try {
Thread.sleep(1000 * 60 * 60);
} catch (InterruptedException ex) {}
否则,您可以选择 ScheduledExecutorService
ScheduledExecutorService executor = ...
executor.scheduleAtFixedRate(someTask, 0, 1, TimeUnit.HOUR);
答案 2 :(得分:0)
import java.util.Timer;
import java.util.TimerTask;
public class MyTimer {
public static void main(String[] args) {
OneHourJob hourJob = new OneHourJob();
Timer timer = new Timer();
timer.scheduleAtFixedRate(hourJob, 0, 5000 * 60 * 60); // this code
// runs every 5 seconds to make it one hour use this value 5000 * 60 *
// 60
}
}
class OneHourJob extends TimerTask {
@Override
public void run() {
System.out.println("Ran after one hour.");
}
}
以上代码每五秒运行一次。无论你需要做什么工作,都要在OneHourJob的run方法中编写代码