java线程-求详细

jiangbo578 发布于 2015/06/04 15:55
阅读 444
收藏 0
用java写一个线程,指定其在每天晚上12点运行一次,求具体代码 ?
加载中
0
第一天
最简单的用timer
不日小鸡
回复 @jiangbo578 : 伸手党?
Most_Gust
Most_Gust
伸手简直理直气壮
j
jiangbo578
写出来啊.
0
李帅雷
李帅雷

new Thread(){

  long time=1433347200000l;//2015年6月4日0点的毫秒数,换其他时间的话,一天的毫秒数是86400000

  Date now;

  public void run(){

    now=new Date();

    if(((now.getTime()-time)%86400000)==0){

      //要做的事情

    }

}.start();

赵小布007
赵小布007
线程只跑一次,在里面加上定时器
0
0x0001
0x0001
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.AM_PM, calendar.AM); // 设置到上午,方便设置到0点
calendar.set(Calendar.HOUR_OF_DAY, 0);      // 设置到0点, 表示晚上12点
calendar.set(Calendar.MINUTE, 0);           // 分钟
calendar.set(Calendar.SECOND, 0);           // 秒
calendar.add(Calendar.DAY_OF_MONTH, 1);     // 第二天

long initDelay = calendar.getTimeInMillis() - System.currentTimeMillis(); // 设置执行的时间减去当前时间,就是需要等待的时长

ScheduledExecutorService scheduledExecutorService = new ScheduledThreadPoolExecutor(1);
scheduledExecutorService.scheduleAtFixedRate(new Runnable() {
    @Override
    public void run() {
        System.out.println("task run ...");
    }
}, initDelay, TimeUnit.DAYS.toMillis(1), TimeUnit.MILLISECONDS); // 每隔一天执行



j
jiangbo578
这个很不错, 非常感谢啊。
0
首席撸出血
首席撸出血
手伸到开源中国了,应该去JAVA吧伸手,那里会帮你的
j
jiangbo578
开源的力量是巨大的,乐于助人,快乐自己,
0
beyondforever68
beyondforever68
这问题真是
0
泥瓦匠BYSocket
泥瓦匠BYSocket
自己写我就不扯淡了

项目中:建议用quartz 或者 spring schedule

j
jiangbo578
谢谢哦 !
0
lyle_luo
lyle_luo
定时器,
j
jiangbo578
谢谢!
返回顶部
顶部