首页 > java线程的问题

java线程的问题

用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);
    }

无非就是时间匹配而已,设置两个线程,一个用于时间匹配,一个用于执行功能。

【热门文章】
【热门文章】