Эффективно они делают, когда вы используете сервер приложений. Сервер приложений обычно запускает ваше приложение в отдельном потоке, а не в JVM для каждого приложения.
Если вы хотите получить подобное решение, вы можете написать примитивный сервер, который вызывает основной метод вашего приложения в определенных потоках.
Имейте в виду, что это также может вызвать дополнительную головную боль. Если один поток выходит из приложения, например, с System.exit(0)
, все ваши потоки будут закрыты.