Event loop в Node.js

  Переглядів 41,975

EPAM Moscow ITsubbotnik

EPAM Moscow ITsubbotnik

5 років тому

Сергей Аванесян, Senior Software Engineer EPAM
«Хочешь понимать, что у NodeJS под капотом? Тогда этот доклад для тебя!
Я расскажу про то, как устроен и работает eventloop в NodeJS. Во время доклада разберем всё на практическом примере с визуализацией».
Ссылка для скачивания презентации: events.epam.com/events/itsubb...

КОМЕНТАРІ: 52
@denisdk7912
@denisdk7912 4 роки тому
Спасибо за доклад, лучшее что видел про event loop ноды
@tshch8571
@tshch8571 5 років тому
Странно, что не упомянули автора в тексте. Сергей Аванесян, запомните этого парня!
@epammoscowitsubbotnik5379
@epammoscowitsubbotnik5379 4 роки тому
Мы исправились =)
@user-hc5px6de9y
@user-hc5px6de9y 4 роки тому
За пол часа, понять как строить архитектуру кода. Очень информационный доклад без воды!
@piano9446
@piano9446 2 роки тому
Thank you Sergey jan, this is a really very helpful, detailed presentation.
@ykartoev
@ykartoev 4 роки тому
Крутой доклад, большое спасибо!
@user-no2rk3rz4e
@user-no2rk3rz4e 4 місяці тому
Лучшая подача про event loop
@alenalinkevich4489
@alenalinkevich4489 5 років тому
Спасибо большое, очень классный и нужный доклад. Пересмотрела и перечитала кучу всего, этот самый понятный.
@AkkayHT228
@AkkayHT228 4 роки тому
Alena Linkevich как успехи, уже выучили?
@surho007
@surho007 2 роки тому
Супер офигенное обьяснение
@MasharipovSaidbek
@MasharipovSaidbek 2 роки тому
Thanks, Great work!
@user-up1ii7zt8y
@user-up1ii7zt8y Рік тому
Очень круто! Спасибо!
@andriiveretko3399
@andriiveretko3399 3 роки тому
В новых версиях ноды setIntermidiate() имеет выше приоритет и колбэк будет выполнен уже в нынешнем цикле
@atk65223
@atk65223 4 роки тому
Спасибо, крутой доклад. Единственное что, лучше бы слайд постоянно показывали на полный экран, а аудиторию где-то в углу. На аудиторию не очень интересно смотреть, а слайд не видно.
@AlexP-qm7ew
@AlexP-qm7ew 3 роки тому
Как решение - скачать презентацию по ссылке и открыть в окне рядом, если есть такая возможность
@aleksandrmatyka3118
@aleksandrmatyka3118 Рік тому
Отличный доклад
@yennms5547
@yennms5547 4 місяці тому
Отличное видео, спасибо!
@user-qi7pn3py2q
@user-qi7pn3py2q 3 роки тому
Super!
@dima19972525
@dima19972525 Рік тому
топ доклад, лектор красавчик, оч понравилось
@user-xw6jr7ue4b
@user-xw6jr7ue4b Рік тому
Лучшее объяснение по этой теме. Посмотрел видосов 10 как на русском, так и на английском, читал документацию, лазил по разным сайтам, но именно благодаря вашему объяснению понял как это работает.
@Fayzov
@Fayzov 4 роки тому
Ахуенно! Спасибо за доклад!
@fruitypie
@fruitypie 4 роки тому
У nextTick() приоритет над таймерами и они выполняются быстрее, но, авторы многих популярных книг по ноде вообще не рекомендуют использовать данный метод Автору не помешало бы приводить побольше реальных примеров, а так, спасибо за доклад
@glebandreev7095
@glebandreev7095 Рік тому
стоило начинать с паттерна реактор и демультиплексирования событий, только потом говорить про event loop и уточнить, что по факту нет такого количества очередей под каждую фазу, есть только Event Queue, которую libuv разбирает в соответсвии в фазами
@evgenylevchenya8734
@evgenylevchenya8734 2 роки тому
Попробуйте обернуть всё в асинхронную функцию и добавьте await к промисам или докинуть fs/promises
@torodinson5260
@torodinson5260 4 роки тому
почему readfile идет в poll ? это же i/o колбэк
@alexeylozenko6093
@alexeylozenko6093 Рік тому
Коротко и просто очереди и приоритет их выполнения.
@glebbondarenko67
@glebbondarenko67 4 місяці тому
Как я понял DataLoader основан на том что nextTick выполняется перед Promise
@Dragolietel
@Dragolietel 2 роки тому
С файлом немного не точный пример - он туда не заходит потому что файл может быть еще не прочитан и сообщение вообще не в мессейдж кью
@jaisharma8056
@jaisharma8056 Рік тому
Можешь сделать то же видео в английском переводе?
@dawitadmassu2947
@dawitadmassu2947 2 роки тому
no English version please ?
@daniildmitriev7426
@daniildmitriev7426 2 роки тому
Приложите листинг кода плиз
@torodinson5260
@torodinson5260 3 роки тому
где в примере с crypto там 4 асинхр ф-ии ?
@user-bu3hz5be5w
@user-bu3hz5be5w 3 роки тому
Не совсем. Это параллельные функции. Тяжёлые операции вроде crypto попадают в Thread Pool, который находится как бы "за" основным потоком и перекладывается на другие ядра компьютера. То есть в примере с крипто у нас каждую функцию выполняет отдельное ядро компьютера, за счёт чего они выполняются практически одновременно. Таким образом сильно сокращается время, за которое выполняется код
@user-ix2ic4te6h
@user-ix2ic4te6h 6 місяців тому
почему при использовании module вместо require другой порядок
@DBFEnd
@DBFEnd Місяць тому
Классное видео, но к сожалению допущена ужасная и очень важная для понимания ошибка в описании: микротаски выполняются не после каждой макрофазы, а после каждой задачи из макрофазы. Аналогия такая же как в браузерном ивентлупе, только тут 6 макроочередей вместо 1
@TyrboCreed
@TyrboCreed 4 роки тому
14:53 Почему попадает в check а не в timers?
@bohdanivanychko7702
@bohdanivanychko7702 4 роки тому
в timers попадают только setInterval и setTimeout
@user-jx8pe4yz6q
@user-jx8pe4yz6q 9 місяців тому
Сразу зарезолвленный промис это синхронная операция?
@user-yd6be5wz4p
@user-yd6be5wz4p 7 місяців тому
Нет, он все равно попадет в очередь. Создание промиса это синхронная операция. Resolve и reject - асинхронные
@fili_9485
@fili_9485 Місяць тому
​@@user-yd6be5wz4pа вот если then после этого то then микротаск будет
@user-sw4ed4gh9n
@user-sw4ed4gh9n 6 місяців тому
8:51
@torodinson5260
@torodinson5260 3 роки тому
какая разница между двумя фазами i/o ?
@user-bu3hz5be5w
@user-bu3hz5be5w 3 роки тому
I - input (ввод), O - output (вывод). Это операции, связанные с чтением/записью файлов. Возможно, ещё с какими-то, но на ум не приходят
@321123580
@321123580 2 роки тому
Это Мартиросян?
@catsapp
@catsapp Рік тому
Да подрабатывает. Шутки кончились
@suazdee
@suazdee 3 роки тому
В IT идут те, кто говорить не умеет? А вообще спасибо, норм материал
@catsapp
@catsapp Рік тому
И объяснять. Поэтому везде доки непонятные
@user-jt7wb3zc1m
@user-jt7wb3zc1m 2 роки тому
Вау, поздравляю! Самое плохое объяснение из всех которые когда-либо встречал!
@idiotidiot2805
@idiotidiot2805 Рік тому
почему? Всё предельно понятно же
@alexeycherneny1431
@alexeycherneny1431 3 місяці тому
Я попробовал воспроизвести этот пример но получил результат иной. Поправьте пожалуйста если я не прав: //------------------------------------------------------------------------------ const fs = require('fs') console.log('START') setTimeout(() => { console.log('setTimeout 1') }, 0) setImmediate(() => { console.log('setImmediate') }) fs.readFile(__filename, ()=> { setTimeout(() => { console.log('readFile setTimeout') }, 0) setImmediate(() => { console.log('readFile setImmediate') }) process.nextTick(() => { console.log('readFile nextTick') }) }) Promise.resolve().then(() => { console.log('Promise') process.nextTick(() => { console.log('Promise Next Tick') }) }) process.nextTick(() => { console.log('Next Tick') }) setTimeout(() => { console.log('setTimeout 2') }) console.log('END') //------------------------------------------------------------------------------ Вывод START END Next Tick Promise Promise Next Tick setImmediate
Пора убить lifecycle!
38:36
EPAM Moscow ITsubbotnik
Переглядів 484
Зомби Апокалипсис  часть 1 🤯#shorts
00:29
Mobile App Automation Testing With Testvox’s Smart Automation Framework
16:52
Testvox _ Software Testing Company
Переглядів 44
Асинхронность (Григорий Бизюкин)
1:11:35
Young&&Yandex: фронтенд-разработка
Переглядів 15 тис.
How does event loop work? -- Event Loop Visualized
1:27
Web Stories
Переглядів 4 тис.
Урок 4. JavaScript. Асинхронность.Что такое Event Loop. JS SetTimeout 0
17:58
Overview of the Node.js platform in 2021
58:55
Egor Malkevich
Переглядів 95 тис.