Timer与timeTask 定时执行

timer是一种定时器工具,用来在一个后台线程中执行指定任务。它可以计划执行一个任务一次或者反复多次。TimeTask一个抽象类,他的子类代表一个可以被Timer计划的任务。

Timer与timeTask 定时执行_第1张图片

使用 Timer中的 schedule()方法定制执行方案(图上的意思是5秒后执行,以后每隔5秒执行一次。)具体的方法实现再讨论。
Timer线程的终止。默认情况下只要一个程序的 timer线程在运行,那么这个程序会保持运行。当然有四种方案可以用来终止一个 timer线程。
1.调用 timercancle方法。可以在程序的任何地方调用此方法。甚至可以在 timerTaskrun方法中。
2.让 timer线程成为一个守护线程(所谓的守护线程就是运行在程序后台的线程,在 Java中的定义是:如果虚拟机中只有 daemon线程在运行,那么虚拟机退出)。可以在创建 timer时使用 new Timer(true)达到这个目的。
3.当 timer相关的所有 task执行完毕以后,删除所有此 timer对象的引用(置为 NULL)。这样 timer线程也会终止。
4.调用 system.exit()方法,使整个程序终止。

TimerschedulescheduleAtFixedRate之间的区别。

前者之间的间隔如果前一个任务没有按时完成,那么后一个任务同样会间隔步长再执行,而后者中前一个任务完成后(没有按时完成),会立马执行下一个任务(最大限度的压缩间隔时间)。
1.每个Timer仅对应唯一一个线程。
2.Timer不保证任务执行的十分精确
3.Timer类的线程是安全的。

你可能感兴趣的:(Timer与timeTask 定时执行)