Mamy małe pole tekstowe z 512 MB pamięci RAM. Chcieliśmy zobaczyć, ile wątków możemy utworzyć w Javie w tym polu. Ku naszemu zaskoczeniu nie możemy stworzyć wielu. Zasadniczo minimalny rozmiar stosu, który można ustawić za pomocą -Xss, wynosi 64k. Prosta matematyka powie, że 64 * 7000 pochłonie 430Mb więc byliśmy tylko w stanie dostać się do około 7000 lub więcej wątków i wtedy napotkał ten błąd:Java jest bardzo ograniczona pod względem maksymalnej liczby wątków?
java.lang.OutOfMemoryError: unable to create new native thread.
Czy to prawdziwa granica z Java? Na 512 MB pamięci RAM możemy tylko wycisnąć 7k liczby wątków?
Czy naprawdę potrzebujesz tak wielu wątków? Ile cpus/rdzeni ma maszyna? – Bwmat
Planujemy wspierać wielu klientów. Jest hostowany na wirtualnej chmurze, więc nie jestem pewien. – erotsppa
Jeśli potrzebujesz 7000 natywnych wątków, masz poważną wadę konstrukcyjną w swojej aplikacji. –