dictionary icon indicating copy to clipboard operation
dictionary copied to clipboard

concurrency

Open jt3k opened this issue 3 years ago • 5 comments

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.

В русской википедии есть такой абзац:

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

Что ещё больше запутывает всех. :)

Давайте распутаем ?

jt3k avatar Jul 09 '21 07:07 jt3k

@amel-true приходи!

pepelsbey avatar Jul 09 '21 12:07 pepelsbey

Я за конкурентность (как и Wikipedia), так как конкурентные процессы могут, но не обязательно исполняются параллельно. Для примера, в JS невозможны параллельные вычисления (язык однопоточный), но возможны конкурентные. Мы запускаем множество промисов, они исполняются (но не их коллбеки!) как параллельно, так и последовательно, нам это не ведомо. Мы не гарантируем порядок исполнения промисов — они конкурентны, равнозначны. Но не обязательно параллельны.

melikhov-dev avatar Jul 14 '21 18:07 melikhov-dev

@amel-true с двумя «р» конкуррентность или с одной «р» конкурентность?

pepelsbey avatar Jul 15 '21 11:07 pepelsbey

@pepelsbey с одной конкурентность

melikhov-dev avatar Jul 16 '21 17:07 melikhov-dev

@jt3k заходите с пулреквестом :)

pepelsbey avatar Jul 17 '21 10:07 pepelsbey