Я просто пытаюсь избежать переключения контекста, поскольку это приводит к большой задержке. Так что, если я так думаю, я хочу иметь максимум один поток на процессор. Если процессор поддерживает виртуальный параллелизм (гиперпоточность, я думаю, что это имя!), Тогда у меня может быть двойное число потоков.
Пример: 4 процессора с гиперпоточностью = максимум 8 потоков.
Конечно, ОС также нуждается в процессоре, поэтому я, возможно, наивен здесь.
В любом случае, знание количества потоков, создаваемых JVM при запуске, является хорошим началом.