2017-06-21 80 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(); 
}