@heIIfire

Действия в событийном цикле выполняются поочередно или паралельно?

Допустим у нас 2 пользователя - Саша и Петя.

Саша заходит на сайт, и совершает действие , которое требует 10 секунд времени. То есть в event loop попадает каллбэк, который требует для выполнения 10 секунд

В это время Петя тоже совершает то же дейсвие. Но в event loop-е в этот выполняется же действие Саши.

Обясните пожалуйста что я не так понял. Заранее благодарен
  • Вопрос задан
  • 80 просмотров
Пригласить эксперта
Ответы на вопрос 2
  • @Azperin
    Дилетант
    Параллельно чему ? Если Саша совершает действие, которое блокирует приложение на 10 секунд, то там не только Петя, но и все остальные будут ждать. Любую другую ситуацию ты можешь симулировать с setTimeout. Event loop на то и луп, что там нет потоков как таковых, можно конечно воркеров напихать в ноду, но это уже другая история.
    Ответ написан
  • @RidgeA
    Тут нужно уточнить что это за операция.
    Если это обращение по сети, чтение файла (кроме fs.readFileSync и других операций *Sync), где ответ придет через 10 секунд - то все ок, просто сработает callback когда придет ответ.
    Если это что-то вроде
    let start = Date.now()
    for (Date.now() < start + 10 * 1000 ) {
    }

    то процесс не будет обрабатывать другие запросы (callback-и)
    Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы