用java写一个线程,指定其在每天晚上12点运行一次,求具体代码 ?
你的意思是定时器吧,下面是每晚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);
}
除了定时器,还可以使用concurrent包的ScheduledThreadPoolExecutor,delay设为现在到12点的时间,duration设为24小时
ScheduledThreadPoolExecutor exec = new ScheduledThreadPoolExecutor(1);
exec.scheduleAtFixedRate(new xxxThread(), delay, duration, TimeUnit.MILLISECONDS);
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
3 回答1.7k 阅读✓ 已解决
无非就是时间匹配而已,设置两个线程,一个用于时间匹配,一个用于执行功能。