2012-05-13 1 views
1

현재 프로젝트에는 타이밍이없고 만족 스럽지만 타이밍이 있다면 훨씬 더 깨끗합니다. 나는이 위로 넘어가 그 그렇게 많이 보지 못했지만Java 기본 타이밍

if (timer == 2000) { 
    System.out.println("2 seconds have passed since "timer" was declared!"); 
} 

: 나는 내가 좋아하는 뭔가를 할 수 있어야 어떤 선언 후, 그래서 나는 그것을 가지고 싶습니다. 죄송합니다. 뭔가 빠진 것 같아요. 나는 이것을하기위한 최선의 방법을 찾고 있습니다.

편집
난 내가 분명하지 않다 경우 충분히 내가 노력하고

while(!Display.isCloseRequested()){ 
    if (whatever == 2 seconds){ //I obviously know a don't right the word seconds next the number 2 
     for(int z = 0; z < 2; z++){ 
      SpawnaZombieAt(leftcorner,20,speed); 
     } 
    } 
} 

이 그래서 ... BTW 이것은 좀비 게임이다 필요한 이유에 대한 자세한 내용을 요청했습니다 일종의 타이머를 시작합니다. 특정 지연 후 특정 작업을 실행하려는 경우 매 2 초 정도이 더 좀비

+1

왜 이런 일을함으로써 성취하고자하는 바를 구체적으로 설명하지 않습니까? 귀하의 질문에 ** 편집 **을 사용하여 자세한 내용을 추가하십시오. – jmort253

+0

Java에서 시간 초과 이벤트를 제공하는 가장 좋은 방법은 정확한 요구 사항에 따라 다릅니다. 핵심 API는 다양한 제약 조건과 정확성을 가진 여러 가지 타이머 클래스를 제공합니다. 다수의 타사 API도 있습니다. 요구 사항에보다 구체적으로 대응하십시오. – McDowell

+2

또한 정확한 * 2000 밀리 초와 비슷한 타이밍 관련 가능성은 낮습니다. –

답변

1

를 생성합니다, 당신은 ScheduledExecutorService 사용할 수 있습니다 - 예를 들면 다음과 같습니다

ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1); 
scheduler.schedule(new Runnable() { 
    public void run() { 
     System.out.println("2 seconds have passed since this action was scheduled!"); 
    } 
}, 2, TimeUnit.SECONDS); 

를 그리고 인쇄됩니다 2 초 후 문장.

스톱워치를 마친 경우 this question propose several alternatives에 대한 답변입니다.

편집

은 편집 후, ScheduledExecutorService 예를 들어 특정 작업을 2 초마다 실행 할 수 있습니다 것 scheduleAtFixedRate method 있습니다.

+0

와우 감사드립니다. – 36redsoxfan

+0

System.currentTimeMillis와 변수를 사용하여 더 많은 것을 찾고 있습니다. – 36redsoxfan

+0

편집을 참조하십시오. 도움이되는지 알려주십시오. – assylias

2

System.currentTimeMillis() 또는 System.nanoTime()을 찾으십니까? 첫 번째는 UTC에 해당하는 저 정밀도 카운터이며, 후자는 경과 시간을 결정하는 데 사용할 수있는 고정밀 타이머입니다.