400 одновременно занятых потоков без 400 ядер ни к чему хорошему не приведет,
а только сильно деградирует систему. Что за задача?
Я бы подумал в сторону 4-12 работающих воркеров и очереди задач.
Ну это не одновременно работающие потоки - в основном они делают сетевые запросы к стороннему апи, реже - пишут в базу, так что какая-то часть потоков будет стоять. А вообще это приложение REST на Spring MVC + Jetty + Mongo.
mitaichik: Процедура создания нового потока дорогая по времени и ресурсам.
Если большинство потоков будет висеть в ожидании ответов API, то лучше использовать Асинхронный HTTP клиент, очередь и парочку потоков, проверяющих выполненные ответы.