java中timer定时执行程序,java timer 线程
定时/计划功能主要使用的就是计时器对象,它在内部还是使用多线程的方式进行处理,所以它和线程技术还是有非常大的关联。
计时器类主要作用就是设置计划任务,但封装任务的类却是任务类任务类是一个抽象类。
执行任务的时间晚于当前时间-----在未来执行的效果
导入Java。util。日期;
导入Java。util。timertask
公共类我的任务扩展TimerTask{
@覆盖
公共无效运行(){
System.out.println(任务执行了,时间为: new Date());
}
}
公共类测试1 {
公共静态void main(String[] args){
System.out.println(当前时间为: new Date());
日历日历参考=日历。getinstance();
calendarRef.add(Calendar .第二,10);
日期运行日期=日历参考。gettime();
我的任务task=新建我的任务();
//查看计时器构造方法,创建一个计时器就是启动一个新的线程
Timer Timer=new Timer();
定时器.时间表(任务,运行日期);//定时器在某个时间(运行日期)执行某个任务(任务)
}
}免费在线学习视频分享:java视频
Timer中允许有多个TimerTask任务及延时的测试
任务是以队列的方式一个一个被顺序性地执行,所以执行时间有可能和预期的时间不一致,因为前面的任务有可能消耗的时间较长,则后面的任务运行的时间也被延后。
导入Java。util。日期;
导入Java。util。timertask
公共类MyTaskA扩展了TimerTask{
@覆盖
公共无效运行(){
尝试{
System.out.println(开始计时器,时间为: new Date());
线程。睡眠(20000);
System.out.println(结束计时器,时间为: new Date());
} catch (InterruptedException e) {
e。printstacktrace();
}
}
}
导入Java。util。日期;
导入Java。util。timertask
公共类MyTaskB扩展TimerTask{
@覆盖
公共无效运行(){
System.out.println(B开始计时器,时间为: new Date());
System.out.println(B结束计时器,时间为: new Date());
}
}
导入Java。util。日历;
导入Java。util。日期;
导入Java。util。计时器;
公共类测试1 {
公共静态void main(String[] args){
System.out.println(当前时间为: new Date());
日历日历f1=日历。getinstance();
日期运行日期1=日历参考1。gettime();
System.out.println(A计划时间为:‘运行日期1);
日历F2=日历。getinstance();
calendarRef2.add(日历。第二,10);
日期运行日期2=日历参考2。gettime();
System.out.println(B计划时间为:‘运行日期2);
MyTaskA task 1=new MyTaskA();
MyTaskB task 2=new MyTaskB();
Timer Timer=new Timer();
timer.schedule(任务1,运行日期1);//定时器在某个时间(运行日期)执行某个任务(任务)
timer.schedule(任务2,运行日期2);
}
}schedule(TimerTask task, Date firstTime, long period)
该方法的作用是在指定的日期之后按指定的间隔周期,无限循环地执行某一任务。
导入Java。util。日期;
导入Java。util。timertask
公共类我的任务扩展TimerTask{
@覆盖
公共无效运行(){
System.out.println(任务开始: new Date());
System.out.println(mytask . );
System.out.println(任务结束: new Date());
}
}
导入Java。util。日历;
导入Java。util。日期;
导入Java。util。计时器;
公共类运行{
公共静态void main(String[] args){
System.out.println(当前时间为: new Date());
日历c=日历。getinstance();
c.add(日历。第二,10);
date run date 1=c . gettime();
System.out.println(计划时间为:‘运行日期1);
我的任务我的任务=新建我的任务();
Timer Timer=new Timer();
定时器.时间表(我的任务,运行日期1,10000);
}
}TimerTask类的cancel()方法
任务类中的取消()方法的作用是将自身从任务队列中进行清除。
导入Java。util。日期;
导入Java。util。timertask
公共类MyTaskA扩展了TimerTask{
@覆盖
公共无效运行(){
System.out.println(A运行计时器=新日期());
这个。cancel();
System.out.println(A任务自己移除自己);
}
}
导入Java。util。日期;
导入Java。util。timertask
公共类MyTaskB扩展TimerTask{
@覆盖
公共无效运行(){
System.out.println(B运行计时器=新日期());
}
}
导入Java。util。日历;
导入Java。util。日期;
导入Java。util。计时器;
公共类运行{
公共静态void main(String[] args){
System.out.println(当前时间为: new Date());
日历c=日历。getinstance();
date run date 1=c . gettime();
System.out.println(计划时间为:‘运行日期1);
MyTaskA MyTaskA=new MyTaskA();
MyTaskB MyTaskB=new MyTaskB();
Timer Timer=new Timer();
timer.schedule(myTaskA,runDate1,4000);
timer.schedule(myTaskB,rundate 14000);
}
}Timer的cancel()方法
和任务类中的取消()方法清除自身不同,计时器类中的取消()方法作用是将任务队列中全部的任务进行清空。
导入Java。util。日期;
导入Java。util。timertask
公共类MyTaskA扩展了TimerTask{
@覆盖
公共无效运行(){
System.out.println(A运行计时器=新日期());
这个。cancel();
System.out.println(A任务自己移除自己);
}
}
导入Java。util。日期;
导入Java。util。timertask
公共类MyTaskB扩展TimerTask{
@覆盖
公共无效运行(){
System.out.println(B运行计时器=新日期());
}
}
导入Java。util。日历;
导入Java。util。日期;
导入Java。util。计时器;
公共类运行{
公共静态void main(String[] args){
System.out.println(当前时间为: new Date());
日历c=日历。getinstance();
date run date 1=c . gettime();
System.out.println(计划时间为:‘运行日期1);
MyTaskA MyTaskA=new MyTaskA();
MyTaskB MyTaskB=new MyTaskB();
Timer Timer=new Timer();
timer.schedule(myTaskA,runDate1,4000);
timer.schedule(myTaskB,rundate 14000);
}
}schedule(TimerTask task, long delay)
该方法的作用是以执行计划(TimerTask任务,长延迟)方法当前的时间为参考时间,在此时间基础上延迟指定的毫秒数后执行一次任务任务。
导入Java。util。日期;
导入Java。util。timertask
公共类我的任务扩展TimerTask{
@覆盖
公共无效运行(){
System.out.println(A运行计时器=新日期());
}
}
导入Java。util。日历;
导入Java。util。日期;
导入Java。util。计时器;
公共类运行{
公共静态void main(String[] args)引发中断的异常{
System.out.println(当前时间为: new Date());
日历c=日历。getinstance();
date run date 1=c . gettime();
System.out.println(计划时间为:‘运行日期1);
我的任务我的任务=新建我的任务();
Timer Timer=new Timer();
定时器.时间表(我的任务,7000);//计划任务延迟七秒后执行
线程。睡眠(10000);
计时器。cancel();
}
}更多相关文章教程推荐:java入门教程以上就是爪哇线程之计时器定时器的详细内容,更多请关注我们其它相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。