B
Backend Ready | IT
@backend_ready7.3K подп.
627просмотров
8.6%от подписчиков
22 марта 2026 г.
provocationScore: 690
Event Loop — сердце Node.js, которое никогда не спит 🎡 Многие знают, что Node.js работает в одном потоке, но мало кто понимает, как он успевает обрабатывать тысячи запросов одновременно. Секрет в Event Loop — бесконечном цикле, который распределяет задачи по разным «очередям». Как это работает? 🛠️ Представь официанта в ресторане. Он не стоит у столика, пока повар готовит блюдо. Он берет заказ, отдает его на кухню и идет к следующему клиенту. Когда еда готова, он получает сигнал и выносит тарелку. Фазы цикла (упрощенно): — Timers: Проверка setTimeout и setInterval. Пора ли выполнять код? ⏱️ — Pending Callbacks: Выполнение отложенных операций ввода-вывода (ошибки TCP и т.д.). — Poll: Самая важная фаза. Здесь Node.js ждет новых событий (запросы, чтение файлов) и выполняет их колбэки. 📥 — Check: Здесь срабатывают setImmediate. — Close Callbacks: Закрытие ресурсов (например, socket.on('close', ...)). Зачем это нужно? 🚀 — Неблокируемость: Пока база данных ищет запись, основной поток свободен и может принять еще десять новых подключений. 🏎️ — Эффективность: Тебе не нужно создавать тысячи системных потоков (как в Java или PHP), которые съедят всю память. — Простота: Тебе не нужно мучиться с блокировками (locks) и синхронизацией общих переменных, так как код JS всегда выполняется в одном потоке. 🛡️ Главные правила выживания: 🏗️ — Не блокируй цикл! Если ты запустишь в основном потоке тяжелый цикл на 10 секунд (например, сложную математику), сервер «умрет» для всех остальных пользователей. 🛑 — Используй Worker Threads: Если всё же нужно считать что-то тяжелое — выноси это в отдельный поток (как мы обсуждали раньше). — process.nextTick(): Это «VIP-очередь». Колбэки из неё выполняются сразу после текущей фазы, не дожидаясь следующего круга. ⚡ > Итог: Понимание Event Loop — это разница между «просто пишу код» и «понимаю, как работает моя система». Не заставляй своего «официанта» стоять без дела! ⚙ Backend Ready | #уроки
627
просмотров
1954
символов
Да
эмодзи
Нет
медиа

Другие посты @backend_ready

Все посты канала →
Event Loop — сердце Node.js, которое никогда не спит 🎡 Мног — @backend_ready | PostSniper