2014-07-17 4 views
0

두 개의 타이머가 있으며 각기 다른 TimerTask를 실행합니다. timerTask1은 매 5 초마다 실행해야하며 timerTask2는 20 초 동안 실행되어야합니다.동시에 두 개의 타이머 실행

Timer timerPush = new Timer("RESTtimer");//create a new Timer 
Timer timerPoll = new Timer("POLLTimer");//create a new Timer 

timerPush.scheduleAtFixedRate(timerTask1, 0, 5000); 
timerPoll.scheduleAtFixedRate(timerTask2, 0, 20000); 

그러나 timerTask1이 실행되는 것을보고 있습니다. 어떤 일이 일어나고 어떻게 해결할 수 있는지 설명 할 수 있습니까?

+0

할 것 timerTask1 및 timerTask2 실수로 같은 작업을 참조하고 있습니까? – NESPowerGlove

+0

Windows 7에서 Oracle Java 7을 사용하여 실행하면 코드가 예상대로 작동합니다. – Robert

+0

공유 한 코드에 아무런 문제가 없습니다. [이 데모] (http://ideone.com/yxda1V)를 참조하십시오. 문제는 다른 곳에 있어야합니다. – Keppil

답변

0

내가 생각할 수있는 해결책은 타이머마다 하나씩 두 개의 스레드를 생성 할 수 있다는 것입니다. 첫 번째 스레드는

timerPush.scheduleAtFixedRate(timerTask1, 0, 5000); 

을 할 것이며, 다른 하나는

timerPoll.scheduleAtFixedRate(timerTask2, 0, 20000); 
+0

지금 무슨 일이 일어나고 있는지 설명해 주시겠습니까? TimerTask가 이미 자체 스레드에서 실행되지 않았습니까? – user3249763