Wir haben ein kleines Textfeld mit 512 MB RAM. Wir wollten sehen, wie viele Threads wir in Java in diesem Feld erstellen können. Zu unserer Überraschung können wir nicht viele schaffen. Im Wesentlichen ist die minimale Stackgröße, die Sie mit -Xss einstellen können, 64k. Einfache mathematische werden Ihnen sagen, dass 64 * 7000 wird 430Mb verbrauchen, so dass wir nur in der Lage waren, um es bis zu rund 7000 Fäden oder so und dann stießen wir auf diesen Fehler:Java sehr begrenzt auf maximale Anzahl von Threads?
java.lang.OutOfMemoryError: unable to create new native thread.
Ist dies die wahre Grenze mit Java? Pro 512 MB RAM können wir nur 7k Anzahl von Threads oder so drücken?
brauchst du wirklich so viele threads? Wie viele CPUs/Kerne hat die Maschine? – Bwmat
Wir planen, viele Kunden zu unterstützen. Es ist in einer virtuellen Cloud gehostet, also nicht sicher. – erotsppa
Wenn Sie 7000 native Threads benötigen, liegt ein schwerwiegender Konstruktionsfehler in Ihrer Anwendung vor. –