[java] java.util.Timer 클래스에서 예약 된 작업을 중지하는 방법

나는 java.util.Timer클래스를 사용하고 있고 일정 방법을 사용하여 일부 작업을 수행하고 있지만 6 번 실행 한 후 작업을 중지해야합니다.

어떻게해야합니까?



답변

어딘가에 타이머에 대한 참조를 유지하고 다음을 사용하십시오.

timer.cancel();
timer.purge();

뭘 하던지 막으려 고요 이 코드를 수행중인 작업에 삽입하여 수행 한 static int횟수를 계산할 수 있습니다. 예 :

private static int count = 0;
public static void run() {
     count++;
     if (count >= 6) {
         timer.cancel();
         timer.purge();
         return;
     }

     ... perform task here ....

}


답변

어느 전화 cancel()Timer 그 모든 그것의 일, 또는 만약 cancel()TimerTask 경우 타이머 자체는 계속 하시겠습니까 다른 작업이 있습니다.


답변

타이머에 예약 한 작업을 중지해야합니다. 타이머 :

Timer t = new Timer();
TimerTask tt = new TimerTask() {
    @Override
    public void run() {
        //do something
    };
}
t.schedule(tt,1000,1000);

중지하려면 :

tt.cancel();
t.cancel(); //In order to gracefully terminate the timer thread

타이머를 취소하는 것만으로는 진행중인 타이머 작업이 종료되지 않습니다.


답변

timer.cancel();  //Terminates this timer,discarding any currently scheduled tasks.

timer.purge();   // Removes all cancelled tasks from this timer's task queue.


답변

밀리 초 단위의 특정 시간에 깨어 난 후 타이머를 한 번 종료합니다.

Timer t = new Timer();
t.schedule(new TimerTask() {
            @Override
             public void run() {
             System.out.println(" Run spcific task at given time.");
             t.cancel();
             }
 }, 10000);


답변