2017-06-21 84 views
0

我对Java编码很陌生。我有一个thread.sleep()暂停执行,并希望编写一个代码以在控制台上按下按键来恢复执行。这里是我的代码:使用任何按键恢复执行

int pausetime = 9000; //user input 
if (pausetime!=0){ 
thread.sleep(pausetime)} 

例如用户输入9000,并决定恢复在5秒执行,代码应恢复与控制台上的任意按键执行。

+0

,我想你应该看看['等待()'和'notify()'](https://stackoverflow.com/a/1036763/2656632)而不是'sleep()' –

回答

0

如果你使用的是Thread.sleep,那么你必须中断这个抛出异常的线程,你必须处理它并继续执行。

这是在我暂停了线程的run方法在等待main方法的输入,然后用户输入后,上述线程中断示例代码

void run(){ 
try { 
      Thread.sleep(15000); 
       System.out.println("sleeping"); 
      } catch (InterruptedException e) { 
       e.printStackTrace(); 
      } 

System.out.println("Runnig thread again"); 
} 
... 
main(...){ 
    Thread t= new Thread(task,"start"); 
    t.start(); 
    a=new InputStreamReader(System.in); 
    char[] ac=new char[5]; 
    try { 
     a.read(ac); 
    } catch (IOException e){  
     e.printStackTrace(); 
    } 
    if(ac.length>0) 
     t.interrupt(); 
}