Ich erstelle einen Web-Service, der eine riesige Menge von kleinen Java-Timer-Threads über (10k) erzeugt. Ich kann anscheinend nur 2k-Timer-Threads erstellen, bevor ich den OutOfMemoryError erhalte: Ich kann keinen neuen nativen Thread erstellen. Wie löse ich das? Ich benutze ein MacBook Pro, um meinen Tomcat Server zu starten. Ich habe die ulimit (-u) max-Benutzerprozesse so konfiguriert, dass sie das verdoppeln, was es früher war, aber ich bekomme immer noch das gleiche Problem. Was sind meine Optionen, wenn dies möglich ist?(Tomcat) Web-Service: OutOfMemoryError: unable neuen native Thread erstellen
0
A
Antwort
5
Es ist oft eine schlechte Idee für Web-Anwendungen, ihre eigenen (einige) Threads zu starten, geschweige denn 10K-Threads - und dann "als Timer"? Ernst? Geh nicht dorthin.
Was können Sie tun?
- Verlassen Sie sich nicht auf die Fähigkeit, diese Threads zu erstellen.
- Ändern Sie Ihre Architektur! Verwenden Sie eine Scheduler-Bibliothek, die dieses Problem bereits gelöst hat (z. B. Quartz oder andere).
- Wenn Sie nicht wollen, um eine externe Bibliothek verwenden (warum würden Sie nicht?): Einen einzelnen Timer-Thread implementieren, die die geplanten Operationen ausführen, wenn sie fällig sind. Sie keinen neuen Thread für jede geplante Operation verwenden
Wenn Sie 100 Eier kochen wollten, würden Sie 100 Timer kaufen?
Verwandte Themen
- 1. Java WebService Thread-Erstellung
- 2. Erstellen Sie einen Webservice in PHP native
- 3. Erstellen eines neuen WordPress-Benutzers mit Webservice
- 4. OutOfMemoryError in einem separaten Java-Thread
- 5. outofmemoryerror beim Erstellen von Bitmap
- 6. Unable Projekt erstellen
- 7. Thread-Blockierung in Tomcat verhindern
- 8. OutOfMemoryError beim Erstellen von AmazonS3Client in Lambda
- 9. Hintergrund Thread Tomcat Struts2
- 10. Twilio Reagieren Native - Unable Modul Krypto
- 11. Java "OutOfMemoryError" beim Erstellen von <100 Threads
- 12. Erstellt Tomcat einen Thread pro Benutzer?
- 13. pid für neuen Thread
- 14. Tomcat sieht keine neuen Dateien
- 15. Weird Tomcat und Axis Webservice Verhalten
- 16. automatisch Thread starten in Tomcat
- 17. Unable erstellen alertDialog in ActionBarActivity
- 18. Warum neuen Thread statt Zukunft {...}
- 19. Java.lang.OutOfMemoryError: kann keinen neuen nativen Thread erstellen -Linux
- 20. MySQL kann keinen neuen Thread erstellen (errno 12)
- 21. WPF neues Fenster erstellen auf neuen Thread Fehler
- 22. Erstellen JFrame in einem neuen Thread (neue messageloog)
- 23. Unable
- 24. Background Worker Thread im WebService-Kontext
- 25. Verwendet Stream.parallel() einen neuen Thread?
- 26. C# timer in neuen Thread
- 27. Apache Tomcat 7 + Nginx - IsTomcat Native benötigt?
- 28. Wenn wir einen neuen .NET-Thread erstellen und starten, erstellt er dann einen neuen Thread auf Betriebssystemebene?
- 29. .net WebService Methode mit "[SoapDocumentMethod (OneWay = true)]" Ursache Thread abgebrochen
- 30. Warum einen neuen Thread mit startAsync erstellen, anstatt im Servlet-Thread zu arbeiten?
Ich würde vorschlagen, Ihren Ansatz zu überdenken und darüber nachzudenken, ob Sie das wirklich mit Threads modellieren müssen. Auch wenn Sie es richtig konfigurieren können, würde ich in Frage stellen, ob Threads der richtige Ansatz dafür waren. –