@topheracher

Чем отличаются Конкурентность, Многопоточность, Асинхронность и Параллелилизм?

В русскоязычном сегменте существуют только понятие однопоточное выполнение и многопоточное выполнение. С появлением JS стали использоваться промис и асинк. Но в западном сегменте вовсю используют еще несколько терминов еще с начала 2000х. Почему их не используют у нас? У нас мало пишут распределенных вещей и все делают всё в 1 потоке?
  • Вопрос задан
  • 2156 просмотров
Пригласить эксперта
Ответы на вопрос 3
sergey-gornostaev
@sergey-gornostaev
Седой и строгий
С терминами из этой области очень много путаницы. Например, в Java очень часто многопоточное выполнение называют асинхронным, хотя это не во всех контекстах верно. Проще всего разбираться на аналогиях. Процитирую самого себя:
  • Один человек ставит кастрюлю на плиту, ждёт пока она закипит, закидывает пельмени, ждёт пока сварятся, снимает, ставит вторую, ждёт пока закипит... - последовательное однопоточное выполнение.
  • Один человек ставит две кастрюли на плиту, как только одна из них закипела, забрасывает пельмени и т.д. - асинхронное выполнение.
  • Два человека ставят две кастрюли на одну плиту... - многопоточное конкурентное выполнение.
  • Два человека ставят две кастрюли на две плиты... - многопоточное параллельное выполнение.

И для всех случаев, кроме первого, есть общий термин - многозадачность.
Ответ написан
qlkvg
@qlkvg
python backend developer
Роскомнадзор и до гугла добрался?
Какая разница между параллельным и многопоточным программированием?
https://habr.com/post/337528/
тысячи их. и это в рамках только тематических медиа.
Ответ написан
Комментировать
VoidVolker
@VoidVolker
Dark side eye. А у нас печеньки! А у вас?
Тем, что это разные понятия.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы