1

我正在开发一个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()”吗?还是有另一种暂停应用程序并恢复它的方法?

4

3 回答 3

1

您可以使用wait代替sleep来暂停线程执行。然后你可以使用notifyornotifyAll来唤醒等待线程。

于 2013-09-24T03:23:57.757 回答
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()您可以在单击时从恢复按钮调用方法

于 2013-09-24T03:36:16.313 回答
0

您可以使用中断来取消睡眠,这里有更多信息: http ://docs.oracle.com/javase/tutorial/essential/concurrency/interrupt.html

于 2013-09-24T03:25:01.493 回答