我正在研究一个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()”吗?还是有另一种方法可以暂停App并恢复它?
答案 0 :(得分:1)
您可以使用wait
代替sleep
来暂停执行线程。然后,您可以使用notify
或notifyAll
唤醒等待的线程。
答案 1 :(得分:1)
使用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()
方法
答案 2 :(得分:0)
您可以使用中断取消睡眠,以下是更多信息: http://docs.oracle.com/javase/tutorial/essential/concurrency/interrupt.html