Асинхронная операция - это операция, которая после инициации продолжается в фоновом режиме, не заставляя вызывающую программу дождаться ее завершения, прежде чем запускать другой код.
Вместо того, чтобы блокировать вызывающую программу (или поток) до получения ответа, асинхронная (также называемая неблокирующая) реализация отправит запрос в базу данных или веб-службу или что-либо еще, а затем немедленно вернется, позволяя вашей программе продолжить запуск другого кода, пока удаленная служба отправляет ответ. После получения ответа система запускает обратный вызов (либо в цикле обработки сообщений, либо в отдельном потоке порта завершения ввода-вывода, в зависимости от среды), позволяя вашему коду обработать ответ.
Многопоточность означает одновременное выполнение более одного потока. В этой модели все операции все еще являются синхронными, но ЦП будет выполнять несколько потоков синхронных операций одновременно.
Многопоточность наиболее целесообразна при вызове нескольких (и независимых) операций с привязкой к процессору на многоядерном процессоре. Например, программа, которая независимо анализирует каждый пиксель изображения, может разделить изображение на одну полосу для каждого ядра ЦП, а затем одновременно проанализировать каждую полосу в своем собственном потоке.
Подробнее здесь - https://blog.slaks.net/2014-12-23/parallelism-async-threading-explained/