RejectedExecutionException in Java-Threads

7

Ich schreibe ein Multithread-Programm in Java. Ich habe so etwas geschrieben

%Vor%

Das Problem, mit dem ich konfrontiert bin, ist, dass das Array mit der richtigen Ausgabe gedruckt wird, aber dann kommt die abgelehnte Ausführungsausnahme Ich verstehe nicht, warum, wenn die Threads verarbeitet und die richtige Ausgabe gegeben haben, warum der Fehler kommt ...

    
Andrzej Doyle 13.11.2010, 13:15
quelle

4 Antworten

13

Ich denke, Sie beenden Ihren Executor zu früh. Dies ist ein Beispiel, wie ich denke, dass Sie arbeiten sollten.

%Vor%

Beachten Sie auch, dass die gleichzeitige Arbeit an demselben Array zu Inkonsistenz führen kann - Sie müssen wirklich sicher sein, dass Sie keine Arbeit an dem Array ausführen, das vom Array abhängt.

    
dacwe 13.11.2010, 13:44
quelle
6

Problem: Sie senden noch neue Aufgaben, selbst nachdem Sie shutdown() aufgerufen haben. Die Verwendung von executor.awaitTermination() wird also nicht helfen.

Um das Problem zu beheben, überprüfen Sie, ob der Executor zum Zeitpunkt der Aufgabe nicht heruntergefahren wurde.

Beispiel:

%Vor%

Ich hoffe, es hilft ...

    
Mak 31.12.2012 07:35
quelle
2

Ich habe die Executoren heruntergefahren, die im Runtime Shutdown-Hook erstellt wurden

%Vor%     
Dungeon Hunter 07.01.2013 07:47
quelle
0

Eine weitere Option könnte darin bestehen, die Zukunft zu erhalten, wenn Sie sich an den Executor wenden und dann die Zukunft blockieren, indem Sie get

aufrufen     
Ashkrit Sharma 19.09.2012 04:19
quelle

Tags und Links