Event loop в Node.js

  Рет қаралды 42,389

EPAM Moscow ITsubbotnik

EPAM Moscow ITsubbotnik

5 жыл бұрын

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

Пікірлер: 52
@user-hc5px6de9y
@user-hc5px6de9y 4 жыл бұрын
За пол часа, понять как строить архитектуру кода. Очень информационный доклад без воды!
@denisdk7912
@denisdk7912 4 жыл бұрын
Спасибо за доклад, лучшее что видел про event loop ноды
@tshch8571
@tshch8571 5 жыл бұрын
Странно, что не упомянули автора в тексте. Сергей Аванесян, запомните этого парня!
@epammoscowitsubbotnik5379
@epammoscowitsubbotnik5379 4 жыл бұрын
Мы исправились =)
@alenalinkevich4489
@alenalinkevich4489 5 жыл бұрын
Спасибо большое, очень классный и нужный доклад. Пересмотрела и перечитала кучу всего, этот самый понятный.
@AkkayHT228
@AkkayHT228 4 жыл бұрын
Alena Linkevich как успехи, уже выучили?
@piano9446
@piano9446 3 жыл бұрын
Thank you Sergey jan, this is a really very helpful, detailed presentation.
@user-xw6jr7ue4b
@user-xw6jr7ue4b Жыл бұрын
Лучшее объяснение по этой теме. Посмотрел видосов 10 как на русском, так и на английском, читал документацию, лазил по разным сайтам, но именно благодаря вашему объяснению понял как это работает.
@ykartoev
@ykartoev 4 жыл бұрын
Крутой доклад, большое спасибо!
@atk65223
@atk65223 4 жыл бұрын
Спасибо, крутой доклад. Единственное что, лучше бы слайд постоянно показывали на полный экран, а аудиторию где-то в углу. На аудиторию не очень интересно смотреть, а слайд не видно.
@AlexP-qm7ew
@AlexP-qm7ew 3 жыл бұрын
Как решение - скачать презентацию по ссылке и открыть в окне рядом, если есть такая возможность
@surho007
@surho007 2 жыл бұрын
Супер офигенное обьяснение
@user-no2rk3rz4e
@user-no2rk3rz4e 5 ай бұрын
Лучшая подача про event loop
@user-up1ii7zt8y
@user-up1ii7zt8y 2 жыл бұрын
Очень круто! Спасибо!
@MasharipovSaidbek
@MasharipovSaidbek 2 жыл бұрын
Thanks, Great work!
@yennms5547
@yennms5547 5 ай бұрын
Отличное видео, спасибо!
@dima19972525
@dima19972525 Жыл бұрын
топ доклад, лектор красавчик, оч понравилось
@aleksandrmatyka3118
@aleksandrmatyka3118 Жыл бұрын
Отличный доклад
@andriiveretko3399
@andriiveretko3399 3 жыл бұрын
В новых версиях ноды setIntermidiate() имеет выше приоритет и колбэк будет выполнен уже в нынешнем цикле
@Fayzov
@Fayzov 4 жыл бұрын
Ахуенно! Спасибо за доклад!
@user-qi7pn3py2q
@user-qi7pn3py2q 3 жыл бұрын
Super!
@torodinson5260
@torodinson5260 4 жыл бұрын
почему readfile идет в poll ? это же i/o колбэк
@glebbondarenko67
@glebbondarenko67 5 ай бұрын
Как я понял DataLoader основан на том что nextTick выполняется перед Promise
@Dragolietel
@Dragolietel 2 жыл бұрын
С файлом немного не точный пример - он туда не заходит потому что файл может быть еще не прочитан и сообщение вообще не в мессейдж кью
@evgenylevchenya8734
@evgenylevchenya8734 2 жыл бұрын
Попробуйте обернуть всё в асинхронную функцию и добавьте await к промисам или докинуть fs/promises
@alexeylozenko6093
@alexeylozenko6093 Жыл бұрын
Коротко и просто очереди и приоритет их выполнения.
@fruitypie
@fruitypie 4 жыл бұрын
У nextTick() приоритет над таймерами и они выполняются быстрее, но, авторы многих популярных книг по ноде вообще не рекомендуют использовать данный метод Автору не помешало бы приводить побольше реальных примеров, а так, спасибо за доклад
@user-ix2ic4te6h
@user-ix2ic4te6h 7 ай бұрын
почему при использовании module вместо require другой порядок
@daniildmitriev7426
@daniildmitriev7426 2 жыл бұрын
Приложите листинг кода плиз
@jaisharma8056
@jaisharma8056 Жыл бұрын
Можешь сделать то же видео в английском переводе?
@dawitadmassu2947
@dawitadmassu2947 2 жыл бұрын
no English version please ?
@glebandreev7095
@glebandreev7095 Жыл бұрын
стоило начинать с паттерна реактор и демультиплексирования событий, только потом говорить про event loop и уточнить, что по факту нет такого количества очередей под каждую фазу, есть только Event Queue, которую libuv разбирает в соответсвии в фазами
@torodinson5260
@torodinson5260 3 жыл бұрын
где в примере с crypto там 4 асинхр ф-ии ?
@user-bu3hz5be5w
@user-bu3hz5be5w 3 жыл бұрын
Не совсем. Это параллельные функции. Тяжёлые операции вроде crypto попадают в Thread Pool, который находится как бы "за" основным потоком и перекладывается на другие ядра компьютера. То есть в примере с крипто у нас каждую функцию выполняет отдельное ядро компьютера, за счёт чего они выполняются практически одновременно. Таким образом сильно сокращается время, за которое выполняется код
@TyrboCreed
@TyrboCreed 4 жыл бұрын
14:53 Почему попадает в check а не в timers?
@bohdanivanychko7702
@bohdanivanychko7702 4 жыл бұрын
в timers попадают только setInterval и setTimeout
@DBFEnd
@DBFEnd 2 ай бұрын
Классное видео, но к сожалению допущена ужасная и очень важная для понимания ошибка в описании: микротаски выполняются не после каждой макрофазы, а после каждой задачи из макрофазы. Аналогия такая же как в браузерном ивентлупе, только тут 6 макроочередей вместо 1
@user-jx8pe4yz6q
@user-jx8pe4yz6q 10 ай бұрын
Сразу зарезолвленный промис это синхронная операция?
@user-yd6be5wz4p
@user-yd6be5wz4p 8 ай бұрын
Нет, он все равно попадет в очередь. Создание промиса это синхронная операция. Resolve и reject - асинхронные
@fili_9485
@fili_9485 2 ай бұрын
​@@user-yd6be5wz4pа вот если then после этого то then микротаск будет
@torodinson5260
@torodinson5260 3 жыл бұрын
какая разница между двумя фазами i/o ?
@user-bu3hz5be5w
@user-bu3hz5be5w 3 жыл бұрын
I - input (ввод), O - output (вывод). Это операции, связанные с чтением/записью файлов. Возможно, ещё с какими-то, но на ум не приходят
@user-sw4ed4gh9n
@user-sw4ed4gh9n 7 ай бұрын
8:51
@321123580
@321123580 2 жыл бұрын
Это Мартиросян?
@catsapp
@catsapp 2 жыл бұрын
Да подрабатывает. Шутки кончились
@suazdee
@suazdee 3 жыл бұрын
В IT идут те, кто говорить не умеет? А вообще спасибо, норм материал
@catsapp
@catsapp 2 жыл бұрын
И объяснять. Поэтому везде доки непонятные
@user-jt7wb3zc1m
@user-jt7wb3zc1m 2 жыл бұрын
Вау, поздравляю! Самое плохое объяснение из всех которые когда-либо встречал!
@idiotidiot2805
@idiotidiot2805 Жыл бұрын
почему? Всё предельно понятно же
@alexeycherneny1431
@alexeycherneny1431 4 ай бұрын
Я попробовал воспроизвести этот пример но получил результат иной. Поправьте пожалуйста если я не прав: //------------------------------------------------------------------------------ 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
Рет қаралды 489
1❤️
00:20
すしらーめん《りく》
Рет қаралды 33 МЛН
Все, что нужно знать про Node.js
58:55
Trampoline Meetup
Рет қаралды 24 М.
ТЫ НЕ ЗНАЕШЬ КАК РАБОТАЕТ EVENT LOOP
8:19
ДЖАВАСКРИПТИЗЕРЫ | КИРИЛЛ ПОЗДНЯКОВ
Рет қаралды 8 М.