schedule的四种用法
schedule(task,time)
在时间等于或者超过time的时候,执行并且执行一次task
schedule(task,time,period)
time 首次执行任务的时间
period 执行一次task的时间间隔
schedule(task,delay)
等待delay毫秒之后,执行并且执行一次task
scheduleAtFixedRate(task,time,delay)
区别在于如果时间设置为当前时间之前,比如:当前时间0点0分06秒,2秒钟执行一次,执行时间0点0分00秒,scheduleAtFixedRate会赶进度,执行三次,
scheduleAtFixedRate(task,delay,period)
相对于任务开始时间,不是任务完成时间,存在并发性
task下的cancel() 取消任务
scheduleExecutionTime()获得任务执行时间
timer下的cancel()取消所有任务
purge()移除所有已经取消的任务,返回值是取消的任务数
timer缺陷
管理并发任务的缺陷:Timer有且仅有一个线程去执行定时任务,如果存在多个任务,且任务时间过长,会导致执行结果与预期不符。
当抛出任务异常时的缺陷:如果抛出任务运行时异常,会停止所有任务的执行
java Timer 定时任务
最新推荐文章于 2024-08-03 15:01:05 发布