ich mehrere Dienste parallel mit ExecutorService zu laufen bin versucht. Aber ich konnte nicht parallel ausführen.Java Executor Dienst verarbeitet Nicht Parallel
Ich habe java.util.concurrent.TimeUnit.MINUTES.sleep (1) geschrieben, um eine Minute in Service1-Klasse zu warten.
Aber Service2 verarbeitet erst nach Dienste1 verarbeitet.
Unten ist mein Code-Schnipsel, korrigieren Sie mich bitte/code, wenn meine über ExecutorService verstehen
public void startService() {
try {
ExecutorService service = Executors.newFixedThreadPool(3);
service.submit(new Service1());
service.submit(new Service2());
service.submit(new Service3());
service.shutdown();
service.awaitTermination(1, TimeUnit.MINUTES);
System.exit(0);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
public class Service1 implements Callable<Object> {
{
try {
java.util.concurrent.TimeUnit.MINUTES.sleep(1);
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public Object call() throws Exception {
return null;
}
}
public class Service2 implements Callable<Object> {
@Override
public Object call() throws Exception {
System.out.println(" Service 2 "); // It prints after 1 minute only.
return null;
}
}
public class Service3 implements Callable<Object> {
@Override
public Object call() throws Exception {
System.out.println(" Service 3 ");
return null;
}
}
es funktioniert für mich –
genauer gesagt, Service1 startet vor Service2, aber endet nach –
Sorry, wenn ich als globale SOP {}. Es funktioniert nicht – DEADEND