dictionary
dictionary copied to clipboard
concurrency
concurrency -- новое хитрое слово из области web-воркеров и распараллеливания потоков.
Часто переводят его как "конкурентность". Но как мне кажется перевод должен быть "параллелизм".
Если говорить конкретно, то мне не понравилось русское описание этого поста https://t.me/forwebdev/6133
Куча англо-русских словарей расшифровывает concurrency как параллелизм
В английской википедии одна из последних правок(23:08, 8 April 2021 Vitaly Zdanevich) добовляет к статье мнение некоего Rob Pike который говорит, что параллелизм это не конкарренси. Его мнение я конечно же не изучал.
Согласно Робу Пайку, concurrency - это композиция независимо выполняемых вычислений, и concurrency - это не parallelism: concurrency - это одновременное выполнение множества вещей, а parallelism - выполнение множества вещей одновременно. Concurrency - это структура, parallelism - это выполнение, concurrency обеспечивает способ структурирования решения для решения проблемы, которая может (но не обязательно) быть распараллеливаемой.
Оригинал
According to Rob Pike, concurrency is the composition of independently executing computations,[2] and concurrency is not parallelism: concurrency is about dealing with lots of things at once but parallelism is about doing lots of things at once. Concurrency is about structure, parallelism is about execution, concurrency provides a way to structure a solution to solve a problem that may (but not necessarily) be parallelizable.В русской википедии есть такой абзац:
Примечание — В русскоязычной литературе нередко путаются термины «параллелизм» и «конкурентность». Оба термина означают одновременность процессов, но первый — на физическом уровне (параллельное исполнение нескольких процессов, нацеленное только на повышение скорости исполнения за счёт использования соответствующей аппаратной поддержки), а второй — на логическом (парадигма проектирования систем, идентифицирующая процессы как независимые, что в том числе позволяет их исполнять физически параллельно, но в первую очередь нацелено на упрощение написания многопоточных программ и повышение их устойчивости).
Что ещё больше запутывает всех. :)
Давайте распутаем ?
@amel-true приходи!
Я за конкурентность (как и Wikipedia), так как конкурентные процессы могут, но не обязательно исполняются параллельно. Для примера, в JS невозможны параллельные вычисления (язык однопоточный), но возможны конкурентные. Мы запускаем множество промисов, они исполняются (но не их коллбеки!) как параллельно, так и последовательно, нам это не ведомо. Мы не гарантируем порядок исполнения промисов — они конкурентны, равнозначны. Но не обязательно параллельны.
@amel-true с двумя «р» конкуррентность или с одной «р» конкурентность?
@pepelsbey с одной конкурентность
@jt3k заходите с пулреквестом :)