Optymalizacja wątków Java przy 100% wykorzystaniu procesora

Mam aplikację, która akceptuje pracę w kolejce, a następnie obraca się, aby zakończyć pracę na niezależnych wątkach. Liczba wątków nie jest ogromna, powiedzmy do 100, ale są to zadania intensywne i mogą szybko podnieść CPU do 100%.

Aby jak najszybciej wykonać jak najwięcej pracy: czy mogę lepiej uruchamiać więcej wątków, gdy muszę wykonać więcej pracy i pozwolić programistom wątków Java obsłużyć dystrybucję pracy, czy też stanie się mądrzejszy i zarządzający obciążeniem pracą, aby utrzymać procesor poniżej 100% mnie szybciej?

Maszyna dedykowana jest mojej aplikacji java.

EDYTOWAĆ:

Dzięki za fantastyczny wkład!

Zadania mają różną złożoność i dotyczą operacji we / wy, więc posiadanie niskiej puli wątków powiedzmy, że 4 może równie dobrze uruchamiać procesor do 20%. Nie mam pojęcia, ile zadań faktycznie zajmie procesorowi 100%.

Myślałem, że powinienem monitorować procesor przez RMI i dynamicznie wybierać pracę w górę iw dół, czy też nie powinienem się tym przejmować i pozwolić systemowi operacyjnemu to obsługiwać.

questionAnswers(5)

yourAnswerToTheQuestion