Ile wątków powinienem używać w moim programie Java?

Niedawno odziedziczyłem mały program Java, który pobiera informacje z dużej bazy danych, przetwarza dane i tworzy szczegółowy obraz informacji. Oryginalny autor napisał kod za pomocą pojedynczego wątku, a następnie zmodyfikował go, aby mógł używać wielu wątków.

W kodzie definiuje stałą;

//  number of threads
public static final int THREADS =  Runtime.getRuntime().availableProcessors();

Następnie ustawia liczbę wątków, które są używane do utworzenia obrazu.

Rozumiem jego rozumowanie, że liczba wątków nie może być większa niż liczba dostępnych procesorów, więc ustaw ją tak, aby uzyskać pełny potencjał procesora (ów). Czy to jest poprawne? czy jest lepszy sposób na wykorzystanie pełnego potencjału procesora (ów)?

EDYCJA: Aby dać więcej wyjaśnień, Specyficzny algorytm, który jest sklejany skalami do rozdzielczości tworzonego obrazu (1 wątek na piksel). Oczywiście nie jest to najlepsze rozwiązanie. Praca, którą wykonuje ten algorytm, wymaga całego czasu i jest operacjami całkowicie matematycznymi, nie ma blokad ani innych czynników, które spowodują, że dany wątek będzie spał. Chcę tylko zmaksymalizować wykorzystanie procesora przez programy, aby skrócić czas do zakończenia.

questionAnswers(7)

yourAnswerToTheQuestion