final ExecutorService executor = Executors.newFixedThreadPool(1);
final Future<?> future = executor.submit(myRunnable);
executor.shutdown();
if(executor.awaitTermination(10, TimeUnit.SECONDS)) {
System.out.println("task completed");
}else{
System.out.println("Executor is shutdown now");
}
//MyRunnable method is defined as task which I want to execute in a different thread.
Ecco run
metodo della classe esecutore:Come interrompere tutto il thread eseguibile nella classe java executor?
public void run() {
try {
Thread.sleep(20 * 1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}}
Qui è in attesa di 20
secondi, ma quando ho eseguito il codice viene generata un'eccezione:
java.lang.InterruptedException: sleep interrupted
at java.lang.Thread.sleep(Native Method)
io non sono in grado di chiudere il thread simultaneo che si rovina in Java Executor class
. Qui è il mio flusso Codice:
- Creato un nuovo thread con Java di classe esecutore di eseguire qualche compito cioè scritto in
MyRunnable
executor
attesa per 10 secondi per completare le attività.- Se l'attività è stata completata, il thread eseguibile è stato terminato.
- Se l'attività non viene completata entro 10 secondi, la classe
executor
deve terminare il thread.
Tutto funziona bene tranne la conclusione di attività nell'ultimo scenario. Come dovrei farlo?
possibile duplicato di [Java: arresto forzato dei thread ExecutorService] (http://stackoverflow.com/questions/5946562/java-force-stopping-of-executorservice-threads) – Perception