我的情况是,我有两个并发线程,一个不能启动计时器,另一个可以停止计时器。计时器的工作方式是,一旦启动,它将计数到 5 秒并在之后执行一个函数,它将继续执行此操作,直到计时器被另一个线程停止。这如何在 Java 中实现。这就是我所拥有的,我觉得这是错误的做法:
请注意,sleep 是其他两个线程打开和关闭的全局 volatile 变量。
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();
}
}