Недавно один мой друг задал мне свои вопросы о параллелизме и параллелизме. Когда я начал объяснять ему его вопросы, мы начали обсуждать другие связанные концепции и номенклатуры, такие как Потоки - ›Многопоточные и Однопоточные, Асинхронные и Синхронные. В какой-то момент нас сбили с толку такие запросы, как:

Как параллелизм связан с параллелизмом?

Что такое синхронное и асинхронное выполнение?

В чем важность синхронного и асинхронного программирования для параллелизма и параллелизма?

Как темы соответствуют всем этим концепциям?

Многие из нас иногда путаются с такими вопросами.

Задержитесь на мгновение и попытайтесь ответить на вышеперечисленные вопросы и самостоятельно визуализировать концепции.

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

Параллелизм и параллелизм

Параллелизм

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

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

В мире информатики способ достижения параллелизма в разных процессорах различается. В одноядерной среде (т.е. ваш процессор имеет одно ядро) параллелизм достигается с помощью процесса, называемого переключение контекста. Если это многоядерная среда, параллелизм может быть достигнут за счет параллелизма.

Параллелизм

Представьте, что вам дали две задачи: приготовить еду и поговорить с другом по телефону. Вы можете делать эти две вещи одновременно. Вы можете готовить не хуже, чем разговаривать по телефону. Теперь вы параллельно выполняете свои задачи.

Параллелизм означает выполнение двух или более задач одновременно. Параллельные вычисления в информатике относятся к процессу одновременного выполнения нескольких вычислений.

Как параллелизм связан с параллелизмом?

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

Потоки и процессы

Потоки

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

Процесс

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

Синхронный и асинхронный

Синхронный

Представьте, что вам дали написать два письма: одно - маме, а второе - лучшему другу. Вы не можете одновременно писать две буквы, если только вы не профессионально владеете обеими руками.

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

Асинхронный

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

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

Синхронный и асинхронный в однопоточной и многопоточной среде

Синхронный

Однониточный:

Многопоточный:

Асинхронный

Однонитевой:

Многопоточный:

Какова роль синхронного и асинхронного программирования в параллелизме и параллелизме?

  • Модель асинхронного программирования помогает нам добиться параллелизма.
  • Модель асинхронного программирования в многопоточной среде - это способ добиться параллелизма.

Подводя итоги

Параллелизм и параллелизм - ›

Последовательные задания выполняются.

Синхронный и асинхронный - ›

Модель программирования.

Однонитевой и многопоточный - ›

Среда выполнения задачи.

использованная литература

Я хотел бы услышать от тебя

Вы можете связаться со мной по любым вопросам, отзывам или просто обсудить вопросы по следующим каналам:

Twitter - @gabhisek_dev

LinkedIn

Gmail: [email protected]

Пожалуйста, не стесняйтесь поделиться с другими разработчиками.