Estoy tratando de implementar una aplicación de muestra para probar las interfaces Callable
y ExecutorService
.¿Cómo detener un Callable enviado a ExecutorService?
En mi aplicación He declarado:
ExecutorService exSvc = Executors.newSingleThreadExecutor();
continuación:
Future<Integer> test = exSvc.submit(
new Callable<Integer>() {
public Integer call() {
for(int i = 0; i < 1000; i++){
System.out.println(i);
}
return 1;
}
});
Ahora estoy tratando de detener el proceso antes de que termine, estoy usando exSvc.shutdownNow()
pero no lo hace trabajo.
Para detener con gracia un clásico Thread
suelo utilizar algún tipo de condición variable. ¿Cuál es un enfoque común a seguir con ExecutorService
?
¿Hay alguna manera de detener el proceso sin utilizar la interrupción de hilo? – davioooh
No está claro qué es exactamente lo que quieres. 'shutdownNow()' ya usa la interrupción. – axtavt
Sí, de hecho estoy preguntando cómo detenerlo ** sin ** interrupción de hilo. El uso de 'shutdownNow()' es la única manera de detener un hilo enviado a un 'ExecutorService'? – davioooh