Hallo
In einer Klasse erzeuge ich mittels:
einige Threads:
Diese Threads erzeugen selbst wiederum:
und das ist diese Klasse:
Wenn ich das Programm nun starte dauert es sehr lange, bis das Programm an Ende vollständig terminiert (ca. 2-3 min). Ich kann aber nicht erkennen, wo noch etwas abgearbeitet werden soll.
Meine Fragen nun zum ExecutorService:
Wenn ich die Instanz einer Klasse beende die selbst mittels ExecutorService Threads erzeugt hat, werden die dann auch beendet? Oder laufen die in einen Time-Out da die "Parent" Instanz nicht mehr vorhanden ist?
Die call() Methoden haben teilweise
und teilweise keinen Loop.
Wie kann ich also in Eclipse debugen, welche Threads noch laufen?
Danke!
In einer Klasse erzeuge ich mittels:
Java:
private ExecutorService newCachedThreadPool = Executors
.newCachedThreadPool();
Java:
newCachedThreadPool.submit(new CommunityTargetConsumer(communityTarget,
queue));
Diese Threads erzeugen selbst wiederum:
Java:
public class CommunityTargetConsumer implements Callable<Void> {
private static ExecutorService newCachedThreadPool = Executors
.newCachedThreadPool();
@Override
public Void call() throws Exception {
newCachedThreadPool
.submit(new CommunityTargetSender(host, messages));
und das ist diese Klasse:
Java:
public class CommunityTargetSender implements Callable<Void> {
public Void call() throws Exception {
Wenn ich das Programm nun starte dauert es sehr lange, bis das Programm an Ende vollständig terminiert (ca. 2-3 min). Ich kann aber nicht erkennen, wo noch etwas abgearbeitet werden soll.
Meine Fragen nun zum ExecutorService:
Wenn ich die Instanz einer Klasse beende die selbst mittels ExecutorService Threads erzeugt hat, werden die dann auch beendet? Oder laufen die in einen Time-Out da die "Parent" Instanz nicht mehr vorhanden ist?
Die call() Methoden haben teilweise
Java:
while (!Thread.interrupted()) {
Wie kann ich also in Eclipse debugen, welche Threads noch laufen?
Danke!