-
Notifications
You must be signed in to change notification settings - Fork 918
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
base: master
Are you sure you want to change the base?
Conversation
Отличное замечание, полностью согласен! |
There was a problem hiding this 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.
То, что промисы работают в асинхронном порядке, — это и так ясно. Какую роль в контексте предложения будет играть асинхронность? Речь совершенно не об этом.
Приветствую, спасибо за ревью. По-первому тейку, это никак не исключает отсутствие параллелизма при асинк рантайме с ивент лупом, это также конкурентное исполнение и ожидаемое поведение, когда при переключении контекста выполнения (await), поток прошелся по ивентлупу и другая сопрограмма (промис), еще не в статусе готово, поэтому поток прыгнет в ту сопрограмму (промис), которая первая будет готова. Второй тейк - не очень понятно, почему нужен источник, привязанный к JavaScript, конкурентное выполнение кода никак не привязано к определенным языкам программирования - это общий термин, если Вы не встречали термин конкуретности относительно JS'а, то где Вы наткнулись на "параллелизм" в JS'е, тем более при рассуждениях об асинк рантайме с ивентлупом?. Третий тейк - меня совершенно удивляет, что Вас правда не смущает "параллелизм" относительно имеющейся модели асинка в джаваскрипт, мы в одном потоке, одном процессе, ивент луп у нас обрабатывается одним потоком, с явным переключением (кооперативная многозадачность), обрабатывается с ОЖИДАЕМЫМ поведением, параллелизм в свою очередь обязательно требует многоядерную среду. Т.к. все факторы исключают наличие любой "параллельности" при таком рантайме - нам обязательно нужно убрать любое упоминание этого термина, иначе это вводит людей в заблуждение. |
Описание
В асинхронном рантайме мы имеем один поток один процесс, что исключает любой параллелизм.
Конкурентность - когда несколько задач стартовали и как-то выполняются в течение общего промежутка времени.
Кооперативная многозадачность (модель конкурентного выполнения кода в JavaScript). В асинхронном рантайме мы явно можем сказать какой порядок выполнения кода у нас может быть, благодаря явному переключению потока выполнения с помощью ключевого слова await, что снова собой исключает любой параллелизм.
Термин конкурентное исполнение не говорит о том каким образом эта конкурентность будет получена, например в нашем случае мы переключаем поток выполнения с помощью await.
Если термин "конкурентно" вызывает вопросы или вводит вас в заблуждение, то можно заменить его на "асинхронно", потому что термин "параллельно" в корне неверный и вводит читателей в заблуждение об асинхронной модели 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