Какова связь между асинхронным и параллельным программированием в С#? - программирование
Подтвердить что ты не робот

Какова связь между асинхронным и параллельным программированием в С#?

Я запутался, так как асинхронное программирование - это способ выполнить блок кода асинхронно, который вызывает метод и не ждет результата. Точно так же параллельное программирование - это способ одновременного выполнения нескольких задач, но все эти задачи выполняются асинхронно. Так что интересно/путать, какова связь между этими двумя парадигмами программирования в С#.

4b9b3361

Ответ 1

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

Отличным примером этого является сортировка списка с помощью quicksort.

Как правило, производительность параллельного программирования важна, и все потоки работают с общей целью.

Асинхронное программирование немного отличается. Обычно это требует более длительных задач и задач, которые, возможно, ждут каких-то внешних стимулов. Хорошим примером этого является выполнение большого вычисления в фоновом потоке, чтобы пользовательский интерфейс оставался отзывчивым. С асинхронным кодом мы обычно говорим о коде, который выполняется другим способом в нашем основном приложении.

Ответ 2

Параллельное программирование означает выполнение операций. В то же время использование нескольких потоков, процессов cpu и /core.

Асинхронное программирование, как вы сказали, означает запуск запроса и предоставление механизма обратного вызова для получения ответа.

Ответ 3

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

Ответ 4

наконец:

используйте Параллельное программирование для ЦП Intensive. используйте Асинхронное программирование для решений IO Bound.

Ответ 5

Параллельное программирование в основном касается повышения эффективности системы.

Асинхронное программирование в основном касается улучшения RESPONSIVENESS системы.

Темы, задачи и т.д. - это методы для достижения как асинхронного, так и параллельного программирования.

Ответ 6

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

Параллельное программирование

  • Hob: CPU
  • Несколько горшков: поток
  • Несколько яиц: параллельная задача

У вас есть несколько яиц (Задачи), которые нужно кипятить одновременно. В этом примере варочная панель будет центральным процессором, каждый банк, который кипит одним яйцом, будет одним потоком, а яйца - параллельной задачей. Я могу закипеть несколько яиц (Задачи), добавив одновременно больше горшков (потоков) в варочную панель (ЦП). Без использования параллельного программирования я мог бы только кипеть 1x яйцо (задача) за один раз, так как у вас будет только 1x горшок (Thread), с которым в конечном итоге будет замедляться процесс кипячения яиц.

Асинхронное программирование

  • Таймер яйца: асинхронная задача
  • Hob: CPU
  • Несколько горшков: поток
  • Несколько яиц: задача

Следуя приведенному выше примеру, вы теперь решаете, что хотите знать, когда все яйца были вареными, а не когда каждое яйцо закончило кипение. Для этого вы должны использовать асинхронную задачу, которая в этом случае будет играть как таймер яйца. Таймер яйца (Асинхронная задача) обновит вас, когда все яйца (Задачи) будут завершены, чтобы вы могли делать что-то еще до этого момента.