java里的timer.schedule是否是执行后就一直后台运行?不耽误下面的代码执行吧?

 我来答
受司大人
推荐于2016-10-23 · 知道合伙人影视综艺行家
受司大人
知道合伙人影视综艺行家
采纳数:20262 获赞数:171846
毕业于浙江广厦,有一定的电脑专业基础和两年工作经验,读过相关书籍多本

向TA提问 私信TA
展开全部
1.概览
Timer是一种定时器工具,用来在一个后台线程计划执行指定任务。它可以计划执行一个任务一次或反复多次。
TimerTask一个抽象类,它的子类代表一个可以被Timer计划的任务。
简单的一个例程:

Java代码
import java.util.Timer;
import java.util.TimerTask;
/** *//**
* Simple demo that uses java.util.Timer to schedule a task to execute
* once 5 seconds have passed.
*/
public class Reminder ...{
Timer timer;
public Reminder(int seconds) ...{
timer = new Timer();
timer.schedule(new RemindTask(), seconds*1000);
}
class RemindTask extends TimerTask ...{
public void run() ...{
System.out.println("Time''s up!");
timer.cancel(); //Terminate the timer thread
}
}
public static void main(String args[]) ...{
System.out.println("About to schedule task.");
new Reminder(5);
System.out.println("Task scheduled.");
}
}
[java] view plaincopy
import java.util.Timer;
import java.util.TimerTask;
/** *//**
* Simple demo that uses java.util.Timer to schedule a task to execute
* once 5 seconds have passed.
*/
public class Reminder ...{
Timer timer;
public Reminder(int seconds) ...{
timer = new Timer();
timer.schedule(new RemindTask(), seconds*1000);
}
class RemindTask extends TimerTask ...{
public void run() ...{
System.out.println("Time''s up!");
timer.cancel(); //Terminate the timer thread
}
}
public static void main(String args[]) ...{
System.out.println("About to schedule task.");
new Reminder(5);
System.out.println("Task scheduled.");
}
}

运行这个小例子,你会首先看到:
About to schedule task.
5秒钟之后你会看到:
Time''s up!
这个小例子可以说明一些用Timer线程实现和计划执行一个任务的基础步骤:
实现自定义的TimerTask的子类,run方法包含要执行的任务代码,在这个例子里,这个子类就是RemindTask。
实例化Timer类,创建计时器后台线程。
实例化任务对象 (new RemindTask()).
制定执行计划。这里用schedule方法,第一个参数是TimerTask对象,第二个参数表示开始执行前的延时时间(单位是milliseconds,这里定义了5000)。还有一种方法可以指定任务的执行时间,如下例,指定任务在晚上23点25分执行:

Java代码
//Get the Date corresponding to 11:01:00 pm today.
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 23);
calendar.set(Calendar.MINUTE, 25);
calendar.set(Calendar.SECOND, 0);
Date time = calendar.getTime();
timer = new Timer();
timer.schedule(new RemindTask(), time);
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式