java开发中常会用到延时任务,主要用到的异步延时任务有TimerTask 和ScheduledExecutorService 两种方式java
1.使用TimerTask 类实现延时任务
优势:使用方便简洁 缺点:若大量使用,会比较消耗资源
Timer timer = new Timer(); TimerTask timerTask =new TimerTask(){ @Override public void run() { System.out.println("TimerTask=====》》》》》延时器"); } }; timer.schedule(timerTask,1000);//1.任务 2.时间(毫秒)
2.使用 ScheduledExecutorService 延迟任务线程池
优势:建立一个异步任务池,如有大量异步任务,则推荐使用链接池 缺点: 少许异步任务不适合使用
ScheduledExecutorService scheduledExecutorService=new ScheduledThreadPoolExecutor(10); scheduledExecutorService.schedule(new Runnable() { @Override public void run() { System.out.println("scheduledExecutorService====>>>延时器"); } },1, TimeUnit.SECONDS);//线程实现,二、延迟时间 3.单位