Ile wątków obsłuży java (komputer) ?

0

Jak w tytule. Ile wątków jest w stanie obsłużyć Java a właściwie to komputer z niej korzystający. Domyślam się że czym lepszy tym więcej. Ale tak ogólnie. Chodzi o zwykłe wątki bez wprowadzania obsługi rdzeni(thread bez fork/join).

0

tutaj masz ciekawą dyskusję na ten temat http://stackoverflow.com/questions/763579/how-many-threads-can-a-java-vm-support
a w skrócie - dużo. tyle ile wejdzie do dostępnej pamięci. Możesz zmieniać przy uruchomieniu programu rozmiar stosu przydzielanego wątkowi (strasznie kulawo brzmi to zdanie, mam nadzieję że jest zrozumiałe - po angielsku to heap size), im mniejszy stos tym więcej wątków zmieści się w pamięci.

0

Tyle ile można wystartować w tym samym czasie.

3

Więcej niż ma to sens.

0

Pytanie nie brzmi ile, a czy te wątki będą miały co robić. JVM i tak korzysta z systemowej obsługi wątków zatem ile komp pociągnie tyle i JVM będzie wstanie wątków obsłużyć. Rzecz w tym, że jest sobie Prawo Amdahla, którego stosowanie chroni nas w pewnym zakresie przed bardzo dużymi rozczarowaniami... np. zwiększyliśmy liczbę wątków, apka działa wolniej...

0

W niektórych aplikacjach wątki często na coś czekają (bazę, odczyt/zapis pliku, wywołanie zdalnego serwisu, itp.).
Jak najbardziej opłaca się wtedy tworzyć więcej wątków, niż ma się dostępnych rdzeni.
Oczywiście trzeba pamiętać, aby nie obciążyć za bardzo jakiegoś zasobu (np. 100 wątków wykonujących równolegle zapytania na jednej bazie, to słaby pomysł).
Polecam też korzystanie z pul wątków.

1 użytkowników online, w tym zalogowanych: 0, gości: 1