我的情況是,我有兩個併發線程,一個不能啓動計時器,另一個可以停止計時器。定時器的工作原理是,一旦它啓動,它將計數到5秒,然後執行一個函數,直到定時器被另一個線程停止。這怎麼可以在Java中實現。這是我的,我覺得這是做錯的方式:在java中實現定時器
請注意,睡眠是一個全局易變的變量,其他兩個線程打開和關閉。
void creatTime(final EventHandler handler)
{
Thread timer = new Thread()
{
public void run()
{
try
{
while(true)
{
while(sleep) Thread.sleep(1000);
//invoke function
}
}
catch(IOException e)
{
System.out.println(e);
}
}
};
timer.start();
}
}
嗯,我沒有看到任何人分配睡眠'布爾'任何值。 – GingerHead
@Harutyun是的,我沒有公佈所有的代碼,它的長,但它只是簡單的,切換是同步的。 –
爲什麼要睡1秒? –