어떻게 자바에서 Y 시간마다 X 두 번째 방법을 실행할 수 있습니다

두디 :

나는 20 번하는 방법을 매 초마다 실행합니다.

사실은 내가 타이머를 가지고

Timer timer = new Timer();
int begin = 0;
int timeInterval = 1000;

timer.scheduleAtFixedRate(new TimerTask() {
    @Override
    public void run() {
        //call the method
    }
}, begin, timeInterval);

어떻게하면이 간격과 방법을 20 번 호출 할 수 있습니까?

다니엘 B. :

사용 timer.schedule()하고, 타이머가 실행되고, 20 시간 후 타이머를 중지 된 횟수의 킵 트랙에timer.cancel()

자바 문서 - 시간표

스케줄 지정된 지연 후에 시작이 고정 지연 실행을 반복 지정된 작업. 후속 실행은 지정된 기간으로 구분 약 정기적으로 이루어집니다.

고정 지연 실행에서, 각각의 실행은 이전 실행의 실제 실행 시간에 대해 예약된다. 어떤 이유로 든 실행이 지연되는 경우 (예컨대 가비지 컬렉션 또는 다른 백그라운드 작업 등), 후속 실행이 아니라 지연 될 것이다. 긴 실행 빈도는 일반적으로 (이되는 Object.wait (긴) 정확한 기초하여 시스템 클럭을 가정 할 때), 지정된 기간의 역수보다 다소 낮을 것이다.

고정 지연 실행을 필요로하는 작업의 반복에 적절 "부드러움을." 장기적으로보다 단기적으로 정확한 주파수를 유지하는 것이 더 중요한 경우 즉, 활동에 적합하다. 이것은 일정한 간격으로 커서를 점멸시키는 등, 대부분의 애니메이션 태스크가 포함됩니다. 그것은 또한 자동으로 긴 키를 누르고있는 문자의 반복과 같은 일반 활동 사용자 입력에 응답하여 수행되는 것을 특징으로하는 작업을 포함한다.

매개 변수 :

task - task to be scheduled.
delay - delay in milliseconds before task is to be executed.
period - time in milliseconds between successive task executions.

Timer timer = new Timer();
int begin = 0;
int timeInterval = 1000;
timer.schedule(new TimerTask() {
  int counter = 0;
   @Override
   public void run() {
       //call the method
       counter++;
       if (counter >= 20){
         timer.cancel();
       }
   }
}, begin, timeInterval);

추천

출처http://43.154.161.224:23101/article/api/json?id=223077&siteId=1