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

Исправление ложной информации | перевода в теме Promise API #1936

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

spectrallll
Copy link

Описание

  1. В асинхронном рантайме мы имеем один поток один процесс, что исключает любой параллелизм.

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

  3. Кооперативная многозадачность (модель конкурентного выполнения кода в JavaScript). В асинхронном рантайме мы явно можем сказать какой порядок выполнения кода у нас может быть, благодаря явному переключению потока выполнения с помощью ключевого слова await, что снова собой исключает любой параллелизм.

  4. Термин конкурентное исполнение не говорит о том каким образом эта конкурентность будет получена, например в нашем случае мы переключаем поток выполнения с помощью await.

  5. Если термин "конкурентно" вызывает вопросы или вводит вас в заблуждение, то можно заменить его на "асинхронно", потому что термин "параллельно" в корне неверный и вводит читателей в заблуждение об асинхронной модели JavaScript.

Ссылки

Rob Pike - Concurrency is not Parallelism - https://youtu.be/oV9rvDllKEg?si=DPYT0P5yeFnvgjyq
https://en.wikipedia.org/wiki/Concurrency_(computer_science)
https://www.baeldung.com/cs/concurrency-vs-parallelism

@javascript-translate-bot javascript-translate-bot added the review needed Review needed, please approve or request changes label Mar 3, 2024
@javascript-translate-bot javascript-translate-bot requested a review from a team March 3, 2024 22:09
@CLAassistant
Copy link

CLAassistant commented Mar 3, 2024

CLA assistant check
All committers have signed the CLA.

@At-Sky
Copy link

At-Sky commented Mar 3, 2024

Отличное замечание, полностью согласен!

Copy link
Member

@Alexandre887 Alexandre887 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Конкурентность - когда несколько задач стартовали и как-то выполняются в течение общего промежутка времени.

Скажите, а как вы представляете выполнение двух или более промисов в течение общего промежутка времени? То есть, к примеру, делается три запроса к стороннему API, и все они, следуя вашему определению, завершатся ровно-ровно за условные 3.5467 секунд? Или же я что-то неправильно понял?

И, в целом, термина «конкурентность», «конкурентное выполнение промисов», в русской литературе по JS не встречал. Возможно, в пример можете привести какую-либо книгу, руководство, документацию с использованием этого термина?

Если термин "конкурентно" вызывает вопросы или вводит вас в заблуждение, то можно заменить его на "асинхронно", потому что термин "параллельно" в корне неверный и вводит читателей в заблуждение об асинхронной модели JavaScript.

То, что промисы работают в асинхронном порядке, — это и так ясно. Какую роль в контексте предложения будет играть асинхронность? Речь совершенно не об этом.

@spectrallll
Copy link
Author

spectrallll commented Mar 5, 2024

Конкурентность - когда несколько задач стартовали и как-то выполняются в течение общего промежутка времени.

Скажите, а как вы представляете выполнение двух или более промисов в течение общего промежутка времени? То есть, к примеру, делается три запроса к стороннему API, и все они, следуя вашему определению, завершатся ровно-ровно за условные 3.5467 секунд? Или же я что-то неправильно понял?

И, в целом, термина «конкурентность», «конкурентное выполнение промисов», в русской литературе по JS не встречал. Возможно, в пример можете привести какую-либо книгу, руководство, документацию с использованием этого термина?

Если термин "конкурентно" вызывает вопросы или вводит вас в заблуждение, то можно заменить его на "асинхронно", потому что термин "параллельно" в корне неверный и вводит читателей в заблуждение об асинхронной модели JavaScript.

То, что промисы работают в асинхронном порядке, — это и так ясно. Какую роль в контексте предложения будет играть асинхронность? Речь совершенно не об этом.

Приветствую, спасибо за ревью. По-первому тейку, это никак не исключает отсутствие параллелизма при асинк рантайме с ивент лупом, это также конкурентное исполнение и ожидаемое поведение, когда при переключении контекста выполнения (await), поток прошелся по ивентлупу и другая сопрограмма (промис), еще не в статусе готово, поэтому поток прыгнет в ту сопрограмму (промис), которая первая будет готова. Второй тейк - не очень понятно, почему нужен источник, привязанный к JavaScript, конкурентное выполнение кода никак не привязано к определенным языкам программирования - это общий термин, если Вы не встречали термин конкуретности относительно JS'а, то где Вы наткнулись на "параллелизм" в JS'е, тем более при рассуждениях об асинк рантайме с ивентлупом?. Третий тейк - меня совершенно удивляет, что Вас правда не смущает "параллелизм" относительно имеющейся модели асинка в джаваскрипт, мы в одном потоке, одном процессе, ивент луп у нас обрабатывается одним потоком, с явным переключением (кооперативная многозадачность), обрабатывается с ОЖИДАЕМЫМ поведением, параллелизм в свою очередь обязательно требует многоядерную среду. Т.к. все факторы исключают наличие любой "параллельности" при таком рантайме - нам обязательно нужно убрать любое упоминание этого термина, иначе это вводит людей в заблуждение.

@spectrallll spectrallll requested a review from Alexandre887 March 8, 2024 15:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
review needed Review needed, please approve or request changes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants