Сколько потоков я должен использовать в моей программе Java?

Недавно я унаследовал небольшую Java-программу, которая берет информацию из большой базы данных, выполняет некоторую обработку и создает подробное изображение этой информации. Первоначальный автор написал код, используя один поток, а затем изменил его, чтобы он мог использовать несколько потоков.

В коде он определяет константу;

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

Который затем устанавливает количество потоков, которые используются для создания изображения.

Я понимаю его рассуждение о том, что количество потоков не может быть больше числа доступных процессоров, поэтому установите его на величину, достаточную для полного использования потенциала процессора (ов). Это правильно? или есть лучший способ использовать весь потенциал процессора (ов)?

РЕДАКТИРОВАТЬ: Чтобы дать больше разъяснений, конкретный алгоритм, который является потоком, масштабируется до разрешения создаваемого изображения (1 поток на пиксель). Это, очевидно, не лучшее решение, хотя. Работа, выполняемая этим алгоритмом, заключается в том, что она занимает все время и является исключительно математическими операциями, здесь нет блокировок или других факторов, которые могут привести к тому, что какой-либо конкретный поток перейдет в спящий режим. Я просто хочу максимально увеличить загрузку ЦП программ, чтобы сократить время их завершения.

Ответы на вопрос(7)

Ваш ответ на вопрос