Die Anzahl der eingereichten Aufgaben (Threads) ist in diesem Testszenario ebenfalls nicht groß.Warum wirft Executors.newCachedThreadPool java.util.concurrent.RejectedExecutionException beim Senden aus
Antwort
Sie werden Code-Beispiele, wie Sie instanziiert zur Verfügung stellen müssen und submit
auf den Pool nennen (IP hier kein Thema sein sollte, da wir wie der Interna Ihrer Callable
Klassen oder irgendetwas nicht Details brauchen Das).
Basierend auf den Informationen, die Sie angegeben haben, schließen Sie den Executor-Service mit ziemlicher Sicherheit, bevor Sie ihn absetzen. Überprüfen Sie, ob Sie Anrufe an shutdown
oder shutdownNow
tätigen, und wenn ja, stellen Sie sicher, dass Sie nach diesem Punkt keine Aufgaben hinzufügen.
Darüber hinaus möchten Sie vielleicht Ihre eigene Implementierung von java.util.concurrent.RejectedExecutionHandler
registrieren, um beim Debuggen zu helfen; Seine Nachricht rejectedExecution wird immer dann aufgerufen, wenn der Executor eine Aufgabe nicht annehmen kann. Sie können also eine rudimentäre State-Inspection-Logik verwenden, um die Ursache zu finden.
Sie hatten Recht; Ich habe den Code gefunden, der den Executor-Pool heruntergefahren hat; Vielen Dank –
Ich sehe nirgendwo im Aufruf der Executors.newCachedThreadPool()
Methoden, wo ein RejectedExecutionException
geworfen wird. Es gibt nur drei Fälle, in denen es in Java 6 geworfen zu sein scheint:
- wenn
execute()
auf einemThreadPoolExecutor
und die maximale Poolgröße Aufruf erreicht wurde. - beim Aufruf
execute()
auf einerThreadPoolExecutor
zur gleichen Zeit, dieshutdownNow
, und hat im Wesentlichen das Rennen mit demshutdownNow
Anruf verloren. - bei dem Versuch, die Ausführung eines Runnable in einem
ScheduledThreadPoolExecutor
nach dem Herunterfahren des Executor geplant zu planen.
+1 für die Auflistung aller möglichen Fälle –
- 1. Java: SingleThreadScheduledExecutor & java.util.concurrent.RejectedExecutionException
- 2. Warum wirft PyMongo AutoReconnect?
- 3. Warum wirft EndGetResponse ArgumentNullException?
- 4. Warum wirft Observable.Generate() System.StackOverflowException?
- 5. Warum wirft VBA beim Passieren eines Range-Objekts Typabweichungsfehler auf?
- 6. Warum wirft cmd.executeNonQuery() ManagedDataAccess.Client.OracleException?
- 7. Warum wirft Android NullPointerException?
- 8. Warum wirft Regex_match "Komplexitätsausnahme"?
- 9. Warum String wirft Nullpointer
- 10. Warum wirft IPAddress.MapToIPv4() ArgumentOutOfRangeException?
- 11. Warum WCF Formatierer wirft eine Ausnahme?
- 12. Warum wirft Eclipse 3.2 beim Start einen Fehler
- 13. Warum wirft Hibernate beim Aufruf von session.save (object) eine ClassCastException?
- 14. Warum wirft RestSharp beim Deserialisieren einer booleschen Antwort einen Fehler?
- 15. Warum wirft ComboBox keine Exception beim Setzen von DataSource?
- 16. Warum wirft Spark-Shell ArrayIndexOutOfBoundsException beim Lesen einer großen Datei aus HDFS?
- 17. Warum wirft BitmapSource.Create eine ArgumentException?
- 18. VirtualBox wirft Fehler beim Starten der Genymotion aus
- 19. Warum wirft AsQueryable eine StackOverflowException?
- 20. Warum wirft os.path.join Argumente weg?
- 21. Warum wirft NumberFormat.format eine NullPointerException?
- 22. Warum wirft System.out.println() keine NullPointerException?
- 23. Warum wirft removeOnGlobalLayoutListener einen NoSuchMethodError?
- 24. Warum asInstanceOf wirft keine ClassCastException?
- 25. Warum wirft KafkaUtils.createDirectStream einen NoSuchMethodError?
- 26. Warum wirft XmlSerializer eine InvalidOperationException?
- 27. Warum nicht __getitem__ wirft Typeerror
- 28. Warum wirft Spark-Anwendung "java.lang.NoSuchMethodException"?
- 29. Warum wirft HttpServlet eine IOException?
- 30. Warum wirft Boolean keine StackOverflowException?
Könnten Sie bitte Ihre Frage verfeinern? Z.B. Fügen Sie einen kurzen Testfall hinzu. – Kutzi
Entschuldigung, es gibt nicht viel Code, den ich aus IP-Gründen teilen kann. In Nussschale rufe ich mit Callable Typen ein. Ich suche nach möglichen Szenarien, dass dies passieren kann. –
Willst du sagen, dass es kein bestimmtes Szenario gibt, das du dir ansiehst, sondern stattdessen von den hypothetischen Szenarien wissen möchtest, in denen diese Ausnahme ausgelöst werden könnte? Wenn ja, sollten Sie die Frage von "Warum ..." auf "Wann ..." umformulieren. – akf