Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

concurrency #444

Open
jt3k opened this issue Jul 9, 2021 · 5 comments
Open

concurrency #444

jt3k opened this issue Jul 9, 2021 · 5 comments

Comments

@jt3k
Copy link
Contributor

jt3k commented Jul 9, 2021

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.

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

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

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

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

@pepelsbey
Copy link
Member

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

@melikhov-dev
Copy link

melikhov-dev commented Jul 14, 2021

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

@pepelsbey
Copy link
Member

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

@melikhov-dev
Copy link

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

@pepelsbey
Copy link
Member

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants