Как лучше всего организовывать выполнение асинхронного кода в Java
Всем привет!
У меня есть насущный вопрос: как лучше всего запускать асинхронный код в Java?
Я знаю, что в Java существует огромное количество способов запуска кода в другом потоке.
Самый низкоуровневый из них такой:
new Thread(new Runnable() {
@Override
public void run() {
System.out.println("Hello, world!");
}
}).start();
Я слышал из многих источников, что такой способ запуска является нерекомендуемым и есть более современное API и т.д.
В своих странствиях по Интернету находил огромное количество способов запуска, но так и не понял какой из них наиболее рекомендуемый и почему.
Буду рад любым способам. Можно использовать и советовать любые библиотеки и использовать Spring Framework (у него тоже есть всякие TaskScheduler и т.д.)