2014-09-11 10 views
0

어쩌면 당신은 TimerClass에 대한 몇 가지 일을 이해하는 데 도움이 될 수 : 무한의 TimerTask 메서드 호출

내가 타이머

Timer timer = new Timer(); 

그리고

timer.shedule(new DataFetcher, 0, time); 

짧은 가정 데이터 페치 작업을 가지고 가정 간격과 이론적 인 무한 실행중인 프로그램을 실행하는 간격, 기간이 충분하지 않거나 작업 실행이 너무 오래 걸리는 경우, 많은 DataFetcher로 끝날 것입니다 인스턴스? 내가 sheduling

DataFetcher df = new DataFetcher(); 
timer.shedule(df, 0, time); 

이 내가 항상 동일한 작업 인스턴스에서 작동 거라고 보장 할을 변경하는 경우? 나는 행동을 추정하기 위해 그것을 시뮬레이션하려했지만, 나는 다소 붙어있다.

인사말

는 J2ME를 사용하여 모바일 장치에서 작동하는 메신저주의하시기 바랍니다. 나는 표준 자바에서 타이머 대안에 대해 알고 있지만 그 microedition에 적합하지 않을 것 같아요.

답변

2

두 버전이 동일합니다. 올바른 방법은 DataFetcher의 인스턴스가 하나만 있습니다. documentation에서도

: 고정 지연 실행에서

, 각각의 실행은 이전 실행의 실제 실행 시간에 대해 예약된다. 어떤 이유 (예 : 가비지 수집 또는 기타 백그라운드 활동)로 인해 실행이 지연되는 경우 후속 실행도 지연됩니다.

따라서 작업이 누적되지 않고 하나씩 실행됩니다.

+0

정확히 내가 검색 한 내용입니다. Tyvm. 어리 석다 나는 docu 연구에 열심히 실패 : O를 –