Piszę dość złożoną aplikację serwera Java, która ma znaczącą część przetwarzania w tle oprócz zwykłego przetwarzania żądanie-odpowiedź. Niektóre przetwarzanie w tle odbywa się w sposób podobny do crona przy użyciu frameworka Quartz. Inne zadania są bardziej pożądane - jeśli nowy klient się połączy, tworzy dodatkowe zadanie do jego aktualizacji raz na jakiś czas. Zadania crona można również zmieniać - niektóre wykonują monitorowanie aplikacji zewnętrznych, niektóre obliczają statystyki i tak dalej.Pojedyncze lub wiele pul wątków dla serwera Java?
Używam wielu pul wątków, aby uruchomić wszystkie te zadania z myślą, że podobne zadania będą współużytkować pulę wątków, ale różne zadania nie będą współdzielić. Na przykład zadania monitorowania nigdy nie będą uruchamiane w puli statystyk, a zadania statystyki nigdy nie będą uruchamiane w puli monitorów.
Z drugiej strony wiem, że niektórzy ludzie woleliby po prostu mieć pulę pojedynczej nici i uruchamiać wszystko na niej bez rozstania.
Zastanawiam się, co jest uważane za najlepszą praktykę w takim scenariuszu.
Jakie są plusy i minusy oddzielania puli wątków?
Czy to ma znaczenie?
+1 interesujące pytanie. – KLE