使用 sleep 方法唤醒 Java 中的线程



我是Java多线程的新手,所以请原谅我这个问题有没有办法通过调用 sleep(timeout) 方法并在超时到期之前唤醒睡眠的睡眠线程?例如,叫醒他参加一些活动

谢谢

我已经尝试过处理我的事件的这段代码来手动睡眠/唤醒线程,但它不起作用:线程休眠但无法恢复

              try {
             if(sleepMyThread){
            myThread.sleep(100000);
            sleepMyThread = false;
              }
             else{
            myThread.interrupt();
            sleepMyThread = true;
              }
          }
    catch (InterruptedException e) {
           e.printStackTrace();
    }

仔细阅读sleep方法的文档。它清楚地表明 - 方法抛出InterruptedException.因此,您可以通过中断休眠线程来唤醒该线程。但是,这不是将事件发送到线程的方法。用于发送事件(嗯...核心Java中没有真正的基于事件的机制),您应该使用wait - notify机制。

在线程上调用 interrupt() 方法。它会抛出一个InterruptedException所以一定要处理好。

您可以中断,捕获中断异常并再次循环访问它。这里有一个很好的简单教程:http://docs.oracle.com/javase/tutorial/essential/concurrency/simple.html

最新更新