Sam*_*ami 9 java multithreading timertask
我希望o make thread在特定的时间执行(例如:2012-07-11 13:12:24和2012-07-11 15:23:45)
我查了一下ScheduledExecutorService,但它仅支持从第一次运行一定时间后执行,我没有任何固定的时间段,而不是我有时间从数据库上执行任务.
在一个不同的问题,前一个问题在这里,TimerTask的是解决方案,但obviuosly我不能让一个线程TimerTask作为Runnable与TimerTask两者都有方法run需要被实现.这里的问题是,如果我使线程扩展TimerTask并有一个实现run(),那会有效吗?如果没有,那么我怎么可能做我想做的事情?
Akh*_*khi 13
使用TimerTask.
使用字段变量作为线程创建TimerTask对象.从Timer任务Run方法调用Thread start.
public class SampleTask extends TimerTask {
Thread myThreadObj;
SampleTask (Thread t){
this.myThreadObj=t;
}
public void run() {
myThreadObj.start();
}
}
Run Code Online (Sandbox Code Playgroud)
像这样配置它.
Timer timer new Timer();
Thread myThread= // Your thread
Calendar date = Calendar.getInstance();
date.set(
Calendar.DAY_OF_WEEK,
Calendar.SUNDAY
);
date.set(Calendar.HOUR, 0);
date.set(Calendar.MINUTE, 0);
date.set(Calendar.SECOND, 0);
date.set(Calendar.MILLISECOND, 0);
// Schedule to run every Sunday in midnight
timer.schedule(
new SampleTask (myThread),
date.getTime(),
1000 * 60 * 60 * 24 * 7
);
Run Code Online (Sandbox Code Playgroud)