Чем отличается асинхронное программирование от параллельного?

В чём разница между асинхронным программированием и параллельным?

Параллельное программирование подразумевает собой наличие олее одного вычислительного устройства (процессор, видеокарта и тд), которые будут одновременно выполнять несколько задач. На компьютере с одним процессором параллельное программирование невозможно.

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

На обновлённом видеокурсе по C# Professional от Шевчука рассказывается и про асинхронное, и про параллельное программирование