Anche in questo scenario di test il numero di attività (thread) inviate non è enorme.Perché Executors.newCachedThreadPool genera java.util.concurrent.RejectedExecutionException durante l'invio
risposta
Avrete bisogno di fornire esempi di codice di come si crea un'istanza e chiamare submit
sulla piscina (IP dovrebbe essere un non-problema qui come non abbiamo bisogno di dettagli la struttura interna dei vostri Callable
classi o qualcosa di simile quella).
In base alle informazioni che hai fornito, stai quasi certamente chiudendo il servizio executor da qualche parte prima di inviare il callable ad esso. Controlla se effettui chiamate a shutdown
o shutdownNow
e, in tal caso, assicurati di non aggiungere attività dopo questo punto.
Oltre a ciò, è possibile registrare la propria implementazione di java.util.concurrent.RejectedExecutionHandler
per facilitare il debug; il suo messaggio rejectedExecution verrà chiamato ogni volta che l'executor non è in grado di accettare un'attività, quindi è possibile inserire una logica di ispezione dello stato rudimentale per aiutarvi a trovare la causa.
Avevi ragione; Ho trovato il codice che stava chiudendo il pool di executor; Grazie –
Non vedo da nessuna parte nell'invocazione dei metodi Executors.newCachedThreadPool()
in cui viene generato un RejectedExecutionException
. Ci sono solo tre casi in cui sembra essere gettato in Java 6:
- quando si chiama
execute()
su unaThreadPoolExecutor
e la dimensione massima del pool è stato raggiunto. - quando si chiama
execute()
su unThreadPoolExecutor
allo stesso tempo cheshutdownNow
e ha essenzialmente perso la gara con la chiamatashutdownNow
. - durante il tentativo di pianificare l'esecuzione di un eseguibile in un
ScheduledThreadPoolExecutor
dopo l'arresto dell'esecutore.
+1 per elencare tutti i possibili casi –
- 1. Java: SingleThreadScheduledExecutor & java.util.concurrent.RejectedExecutionException
- 2. Perché IPAddress.MapToIPv4() genera ArgumentOutOfRangeException?
- 3. ReSharper genera questo file: Annotations.cs. Perché?
- 4. Perché XmlSerializer genera un'eccezione InvalidOperationException?
- 5. Perché XmlSerializer.Deserialize genera un System.IO.FileLoadException?
- 6. Perché questo codice genera System.ExecutionEngineException
- 7. Perché Java StringReader genera IOException?
- 8. Xcode ora genera una categoria vuota. Perché?
- 9. Perché il mio server Tomcat genera 804 intermittenti durante la compilazione di JSP?
- 10. Perché RestSharp genera un errore durante la deserializzazione di una risposta booleana?
- 11. Perché MediaPlayer genera NON errore durante la creazione di un'istanza di esso?
- 12. Perché un compilatore genera questo assieme?
- 13. Perché retainAll in ArrayList genera un'eccezione
- 14. Perché il compilatore Rust genera enormi eseguibili?
- 15. Perché maven non genera report di progetto?
- 16. Perché Visual Studio genera questi file aggiuntivi?
- 17. Perché #region genera errori di compilazione?
- 18. Perché coffeescript genera classi come questa?
- 19. Perché dh_usrlocal genera un errore di compilazione?
- 20. Perché il compilatore genera questo codice?
- 21. Perché l'aggiunta Data genera una stringa?
- 22. Perché WatchService genera così tante operazioni?
- 23. Perché questo codice ricorsivo genera un segfault?
- 24. C#, WinForms: ListBox.Items.Add genera una OutOfMemoryException, perché?
- 25. Perché Hibernate genera questa query SQL?
- 26. Perché fork() genera un output duplicato?
- 27. Perché Byte.parseByte ("10000001", 2) genera un NFE?
- 28. Perché canvas.toDataURL() genera un'eccezione di sicurezza?
- 29. Perché Eclipse 3.2 genera un errore all'avvio
- 30. Perché Google CodePro genera test JUnit identici?
Potresti perfezionare la tua domanda? Per esempio. aggiungi un breve banco di prova. – Kutzi
Siamo spiacenti, non c'è molto codice che posso condividere a causa di motivi IP. Nel guscio di noce, sto chiamando invia con Callable tipi. Sto cercando potenziali scenari questo può accadere. –
Stai dicendo che non esiste uno scenario specifico che stai guardando, ma invece vorrebbe sapere degli scenari ipotetici in cui questa eccezione potrebbe essere generata? In tal caso, è necessario riformulare la domanda da "Perché fa ..." a "Quando ..." – akf