2016-04-20 14 views
1

, ich v haben einen Code zum Abschalten Testamentsvollstrecker Dienstes in Java wie unter -Anzeige der freundlichen Nachricht, wenn ExecutorService in Java heruntergefahren wird? So

public void shutdownExecutor() { 
    executor.shutdown(); 
    try { 
     executor.awaitTermination(requestInfo.getUploadThreadCount() * 30, 
       TimeUnit.SECONDS); 
    } catch (InterruptedException e) { 
     logger.error(e); 
    } 
} 

In dem obigen Code, wie Sie die Client-Anwendung (entweder Konsole oder Web) sehen geht leer, bis Fadenzahl * 30 Sekunden sind abgelaufen. Wie zeige ich hier stattdessen eine freundliche Nachricht an?

+2

Füge 'System.out.println (" Freundliche Nachricht ");' vor dem Aufruf von 'awaisttermination' hinzu? (Es ist nicht klar, in welchem ​​Sinn eine Nachricht "freundlich" sein muss) –

Antwort

0

Wenn Sie meinen, dass Sie eine periodische Nachricht während der Wartezeit angezeigt werden soll, können Sie es wie so tun (zB eine Nachricht alle 1 Sekunde bis zu einem Maximum von 30 Sekunden angezeigt wird):

0

Beispiel, ich habe den Executor für 10 Sekunden zum Testen blockiert.

ExecutorService executor = Executors.newFixedThreadPool(4); 
executor.submit(() -> { 
    try { 
     Thread.sleep(10_000); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
}); 
executor.shutdown(); 
System.out.println("The executor is shutting down, "+ 
        "why not make yourself a cup of tea whilst you wait?"); 
try { 
    executor.awaitTermination(5, TimeUnit.SECONDS); 
} catch (InterruptedException e) { 
    logger.error(e); 
}