2017-06-21 5 views
0

Ich bin sehr neu in Java-Codierung. Ich habe eine thread.sleep(), um die Ausführung anzuhalten und möchte einen Code schreiben, um die Ausführung mit einem Tastendruck auf der Konsole fortzusetzen. hier ist mein Code:Fortsetzen der Ausführung mit einem beliebigen Tastendruck

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

zum Beispiel 9000 Benutzer gibt und entscheidet über die Ausführung in 5 Sekunden wieder aufnehmen, Code sollte die Ausführung mit einer beliebigen Taste drücken Sie auf der Konsole wieder aufnehmen.

+0

Ich nehme an, Sie betrachten sollen [ 'warten() 'und' notify() '] (https://stackoverflow.com/a/1036763/2656632) anstelle von' sleep() ' –

Antwort

0

Wenn Sie Thread.sleep verwenden, dann müssen Sie diesen Thread unterbrechen, der die Ausnahme auslöst, die Sie behandeln müssen, und setzt die Ausführung fort.

Hier ist ein Beispielcode, in dem ich den Faden in run-Methode am pausieren, während für die Eingabe in den Hauptverfahren warten und dann über Thread zu unterbrechen, nachdem eine Benutzereingabe

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(); 
} 
Verwandte Themen