java中TimerTask 如何才能停止呢
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中TimerTask 如何才能停止呢相关的知识,希望对你有一定的参考价值。
destroy中的cancel()方法如何调用呢
我希望从另一个类中停止TimerTask的调用
Timer.cancel();//使用这个方法退出任务
Timer有两种执行任务的模式,最常用的是schedule,它可以以两种方式执行任务:1:在某个时间(Data),2:在某个固定的时间之后(int delay).这两种方式都可以指定任务执行的频率.看个简单的例子:
import java.io.IOException;
import java.util.Timer;
public class TimerTest
public static void main(String[] args)
Timer timer = new Timer();
timer.schedule(new MyTask(), 1000, 2000);//在1秒后执行此任务,每次间隔2秒,如果传递一个Data参数,就可以在某个固定的时间执行这个任务.
while(true)//这个是用来停止此任务的,否则就一直循环执行此任务了
try
int ch = System.in.read();
if(ch-'c'==0)
timer.cancel();//使用这个方法退出任务
catch (IOException e)
// TODO Auto-generated catch block
e.printStackTrace();
static class MyTask extends java.util.TimerTask
@Override
public void run()
// TODO Auto-generated method stub
System.out.println("________");
参考技术A 停止TimerTask可以使用TimerTask对象里面的cancel方法
java如何停止一个运行的线程?
关于线程的一点心得
//首先导入需要的包
improt java.util.Timer;
import java.io.File;
import java.util.TimerTask;
//首先需要创建一个线程并且一直运行,然后创建一个计时器任务来触发事件(比如创建一个stop.txt文件,如果发现文件存在则停止运行程序)。
public class Stop{
public static void main(String args[]){
//创建线程,运行。
Count cou=new Count(true);
Thread th=new Thread(cou);
th.start();
//创建一个计时器任务
Timer time=new Timer();
//使用匿名内部类启动计时任务,如果发现文件stop.txt则停止上面线程。
time.schedule(new TimerTask(){
public void run(){
File file=new File("stop.txt");
if(file.exists()){
Count.setFlag(false);
System.exit(-1);
}
},100,1000);
}
}
//通过Runnable接口来创建线程,创建一个boolean flag变量来标记运行状态。
class Conunt implements Runnable{
private boolean flag;
public Count(boolean flag){
this.falg=flag;
}
public void setFlag(boolean flag){
this.falg=flag;
}
//重写Runnable接口的抽象方法,让程序每隔一秒钟输出一个线程状态数字。
public void run(){
for(int i=0;flag;i++){
try{
Thread.sleep(1000);
System.out.println(Thread.cuurentThread().getName()+i);
}catch{
System.out.println("异常");
}
}
}
个人经验,不足之处望指出。
以上是关于java中TimerTask 如何才能停止呢的主要内容,如果未能解决你的问题,请参考以下文章