java中TimerTask 如何才能停止呢

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中TimerTask 如何才能停止呢相关的知识,希望对你有一定的参考价值。

destroy中的cancel()方法如何调用呢
我希望从另一个类中停止TimerTask的调用

Timer类是用来执行任务的类,它接受一个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 如何才能停止呢的主要内容,如果未能解决你的问题,请参考以下文章

定时器篇---java.util.TimerTask和quarts

c# timer停止不了,请问如何解决

java如何停止一个运行的线程?

js timer启动两次怎么停止呀?

Java并发编程:Timer和TimerTask

java timer 用法