Java 怎么在指定的时间内执行某一任务

比如说,我想在30分钟内执行某一任务,30分钟后这个任务就自动结束,请问这个怎么实现。Timer和TimerTask怎么在一起使用达到上面的目的voidschedule(... 比如说,我想在30分钟内执行某一任务,30分钟后这个任务就自动结束,请问这个怎么实现 。Timer和TimerTask怎么在一起使用达到上面的目的
void schedule(TimerTask task, Date time)
void schedule(TimerTask task, Date firstTime, long period)
void schedule(TimerTask task, long delay)
void schedule(TimerTask task, long delay, long period)
void scheduleAtFixedRate(TimerTask task, Date firstTime, long period)
void scheduleAtFixedRate(TimerTask task, long delay, long period)
用上面哪个方法啊?
展开
 我来答
198901245631
2015-07-04 · TA获得超过3.5万个赞
知道大有可为答主
回答量:9037
采纳率:92%
帮助的人:1744万
展开全部
可以通过死循环的方式来进行实现:第一步就是获取到当前的时间,之后和需要执行的时间进行比较,找出时间差,先让线程停止,之后到时见开始执行死循环,执行完成之后再设置线程等待时间,之后重复执行即可,代码举例如下:
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String str = sdf.format(date);
//此处实现更改为其余的时间
Thread.sleep(睡觉的时间);
for(;;){
//执行某一个方法

//此处实现更改为其余的时间
Thread.sleep(睡觉的时间);
}
备注:上面的部分代码已经有说明,直接根据说明实现即可。这个只是一种简单的实现思路,通常复杂的都需要quazter来实现。
百度网友845f74e61
2011-07-16 · TA获得超过6929个赞
知道大有可为答主
回答量:4050
采纳率:50%
帮助的人:1633万
展开全部
嗯,以上都是和线程差不多。
你这个不是定进任务,不是说每隔三十分钟就要做什么事。
而是三十分里都要进行一项工作。
要我的话,就做一个死循环。
进入循环前记录下任务开始时间,循环里判断时间超没超过三十分钟。
超过了,退出循环,结束程序。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式