Próbuję zaimplementować przykładową aplikację do przetestowania interfejsów Callable
i ExecutorService
.Jak zatrzymać zgłoszenie przesłane do ExecutorService?
W moim app I oświadczyli:
ExecutorService exSvc = Executors.newSingleThreadExecutor();
Następnie:
Future<Integer> test = exSvc.submit(
new Callable<Integer>() {
public Integer call() {
for(int i = 0; i < 1000; i++){
System.out.println(i);
}
return 1;
}
});
Teraz staram się zatrzymać proces zanim zakończyć używam exSvc.shutdownNow()
ale to nie robi praca.
Aby zatrzymać z wdziękiem klasyczny Thread
, zwykle używam jakiejś zmiennej warunkowej . Jakie jest wspólne podejście do postępowania z ExecutorService
?
Czy istnieje sposób na zatrzymanie procesu bez przerywania gwintowania? – davioooh
Nie jest jasne, czego dokładnie chcesz. 'shutdownNow()' już używa przerwania. – axtavt
Tak, rzeczywiście, pytam, jak go zatrzymać ** bez ** przerwania wątku. Użycie 'shutdownNow()' jest jedynym sposobem na zatrzymanie wątku przesłanego do 'ExecutorService'? – davioooh