用java写一个线程,指定其在每天晚上12点运行一次,求具体代码 ?
除了定时器,还可以使用concurrent包的ScheduledThreadPoolExecutor,delay设为现在到12点的时间,duration设为24小时
ScheduledThreadPoolExecutor exec = new ScheduledThreadPoolExecutor(1);
exec.scheduleAtFixedRate(new xxxThread(), delay, duration, TimeUnit.MILLISECONDS);
你的意思是定时器吧,下面是每晚12点启动的定时器
public static void setTimer() {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
Date time = calendar.getTime();
Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
public void run() {
//在这里写下你要运行的程序就ok了
}
}, time, 1000 * 60 * 60 * 24);
}
无非就是时间匹配而已,设置两个线程,一个用于时间匹配,一个用于执行功能。