2017-09-27 3 views
2

Ich habe eine Funktion, die etwas Arbeit und wenn es fehlgeschlagen ist oder wenn es eine Ausnahme gibt, gibt es wahr zurück. Jetzt erstelle ich einen Thread in dieser Funktion, die für die gleiche Arbeit verantwortlich ist. Wie kann ich nun die Funktion true zurückgeben, wenn eine Ausnahme ausgelöst wird, während der Thread diese Aufgabe ausführt?Funktion muss True zurückgeben, wenn Thread fehlschlägt

boolean read(){ 
     service.execute(new Runnable() { 
      @Override 
      public void run() { 
       // TODO Auto-generated method stub 
       //does the required work. 
     }); 
    } 
+0

Bitte markieren Sie die Programmiersprache –

Antwort

2

Sie dies, indem sie die Logik erreichen kann durch einen neuen Thread in Form von Callable statt Runnable ausgeführt werden. Im Gegensatz zu Runnable, Callable können Sie ein Ergebnis an den Code zurückgeben, der es in Form von Future aufruft.

boolean read() { 
    Future<Boolean> future = service.submit(() -> { 
     // Do your calculations and return whatever is required 
     return true; 
    }); 

    // future.get() blocks current thread execution until Callable returns the result 
    return future.get(); 
} 

Ich würde auch ThreadPoolExecutor + Callable + Future Example Artikel und JavaDocs für Callable, Future und ExecutorService Klassen lesen empfehlen.

Verwandte Themen