双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

请教!java定时器TimerTask 如何立即停止定时 不用再运行一个周期

鲤鱼爱上猫 鲤鱼爱上猫 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
this.cancel();只能在下一个周期才能停止,我想当我想要停止的时候立即停止
比如当我输入 结束1 的时候 立即停止 启动1 的定时,不会在1分钟后停止

public static void main(String[] args) throws InterruptedException {

while(true){
System.out.print("输入");
Scanner scan = new Scanner(System.in);
String read = scan.nextLine();
System.out.println("输入数据:"+read);

if(read.equals("启动1")){
new MailSend().triger("2019-06-11 16:05:00","sssssssssss",5,60 * 1000);
}else if(read.equals("启动2")){
new MailSend().triger("2019-06-11 09:30:00","ddddddddddd",6,180 * 1000);
}else if(read.equals("结束1")){
new MailSend().setA(5);
}else if(read.equals("结束2")){
new MailSend().setA(6);
}
}

}




public void triger(String date1,String s,int j,long tses) throws InterruptedException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date();
try {
date = sdf.parse(date1);
} catch (ParseException e) {
e.printStackTrace();
}
TimerTask task = new TimerTask() {
@Override
public void run() {
if(a == j){
this.cancel();
System.out.println("结束任务");
return;
}
System.out.println(sdf.format(new Date()) + "-------" + s);

}
};
Timer timer = new Timer();
long delay = 0;
long intevalPeriod = 1000;
timer.scheduleAtFixedRate(task, date, tses);

}

...全文

相关推荐

评论 2
收藏 已收藏
分享
返回顶部
鲤鱼爱上猫
Web 开发 81,108 成员 341,721 内容