java - 如何在时间到之前唤醒线程

标签 java

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

最佳答案

使用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() 方法

关于java - 如何在时间到之前唤醒线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18972387/

相关文章:

java - 一般调试日志实践

java - 为什么我的 jaxb2marshaller 不解码它之前编码的内容?

Java:查找多边形A不与多边形B相交的区域

java - eclipse JDT AST : How to write generated AST to java file?

java - 如何在没有重复代码的情况下使用抽屉导航?

java - 关于 Mockito 的一些帮助

java - 错误是 : "weblogic. application.ModuleException : java. lang.ClassNotFoundException weblogic 服务器 12.2.1

java - 如何使用 Socket 类在 Java 中执行 HTTP 1.1 Post?

Java BigInteger testBit 64 位长

java - 哪个版本的 JaspeReports 支持 Java 8?