2013-05-23 4 views
0

Timer.schedule(TimerTask task, long delay)에서 delay이 음수이면 던져 질 것이지만 delay이 0이면 아무 것도 말하지 않습니다. 무슨 일이 일어날 것? 나는 openjdk에서 시도했고 즉시 실행되었습니다. 이 동작이 다른 곳에서 지정 되었습니까, 아니면 정의되지 않았습니까 (예 : 다른 구현에서 무한대를 의미합니까? 또는 일부 구현은 때로는 무한 할 때가 있습니다). the Java SE7 documentation에서Timer.schedule에서 지연 시간이 0 인 시간은 얼마입니까?

답변

1

나는 자바의 타이머가 작업 큐가있는 스레드라고 생각한다. 항목은 작업 대기열에서 실행될 때까지 순서가 지정됩니다. 지연 0 인 작업은 즉시 시작되어 대기열 맨 위로 이동합니다. 나는 당신이보고있는 행동이 예상되고 서로 다른 플랫폼에서 서로 다른 JDK를 통해 일관되어야한다고 믿습니다.

1

: 지연이 제로 이하의 경우

, 즉시이

을 시작으로 타이머 화재 그래서 당신이있어 결과가 예상 된 동작입니다.

관련 문제