YWNWA
ну как я понимаю - первый подход это работа в одном потоке в основном, можно смешывать добавляя малое количество потоков, второй подход - создание потоков
асинхронные вызовы использовались в однопоточной программе для эмуляции параллелизма. ноги этого противопоставления оттуда растут