Вы не можете использовать такие потоки в Java. Это связано с тем, что потоки Java напрямую отображаются на базовые потоки ОС (по крайней мере, в тех реализациях JVM, о которых я знаю), а потоки ОС не могут масштабироваться таким образом. Практическое правило заключается в том, что вы хотите сохранить общее количество потоков в сотне или что-то еще в приложении. Несколько сотен, наверное, в порядке. Несколько тысяч, как правило, проблематично, в зависимости от используемого вами HW.
Использование потоков, как вы описали, является допустимой стратегией реализации на языках, таких как, например, Erlang. Между тем, если на этот раз вы застряли с Java, хорошей альтернативой может быть создание общего пула потоков и отправка в него ваших задач, а не одновременное выполнение всех задач. В этом случае вы можете выбрать подходящее количество потоков (наилучшее число зависит от характера задачи. Если вы не знаете, количество доступных ядер ЦП, умноженное на 2, - хорошее начало), и одновременно запускать это количество задач. ,
Если вам абсолютно необходимо, чтобы все задачи выполнялись одновременно, это может стать немного сложнее, но это также выполнимо.