[英]How to wake up a thread before time is up
我正在使用Java应用程序,并且到达了要暂停执行几秒钟(由用户选择)并稍后恢复执行的地步..这是一个简单的代码:
Public Class myApp
{
static public main()
{
int seconds=10;
// do couple of things
try {
Thread.sleep(10*1000);
} catch (InterruptedException ex) {
Logger.getLogger(myApp.class.getName()).log(Level.SEVERE, null, ex);
}
}
我现在想通过单击按钮甚至在时间到了之前也可以给用户一个恢复执行的机会。 使用“ Thread.sleep()”有可能吗? 还是有另一种方法可以暂停应用并恢复它?
您可以使用wait
代替sleep
来暂停线程执行。 然后,您可以使用notify
或notifyAll
唤醒等待的线程。
使用CountDownLatch
Public Class myApp
{
static CountDownLatch countDownLatch = new CountDownLatch(1);
static public main()
{
try {
countDownLatch.await(10000, TimeUnit.MILLISECONDS);
} catch (InterruptedException ex) {
// Logging
}
}
}
您可以单击“恢复”按钮上的countDownLatch.countDown()
方法
您可以使用中断来取消睡眠,这是更多信息: http : //docs.oracle.com/javase/tutorial/essential/concurrency/interrupt.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.