С терминами из этой области очень много путаницы. Например, в Java очень часто многопоточное выполнение называют асинхронным, хотя это не во всех контекстах верно. Проще всего разбираться на аналогиях.
Процитирую самого себя:
- Один человек ставит кастрюлю на плиту, ждёт пока она закипит, закидывает пельмени, ждёт пока сварятся, снимает, ставит вторую, ждёт пока закипит... - последовательное однопоточное выполнение.
- Один человек ставит две кастрюли на плиту, как только одна из них закипела, забрасывает пельмени и т.д. - асинхронное выполнение.
- Два человека ставят две кастрюли на одну плиту... - многопоточное конкурентное выполнение.
- Два человека ставят две кастрюли на две плиты... - многопоточное параллельное выполнение.
И для всех случаев, кроме первого, есть общий термин - многозадачность.