• Как разобраться в вопросе блокирующих/не блокирующих операций в Node.js?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    В node.js (стоковом, если мы не говорим о тредах или процессах) одновременно может выполняться только одна операция. Правда есть нюансы. Ваша авторизация врят-ли будет полностью блокирующей. Вы лазаете в базу - в node.js насколько я помню это неблокирующая операция (ну... все чуть сложнее но все же как-то так), и пока запрос идет в базу, может делаться что-то другое.

    Но если вдруг у вас на самом деле если какая-то бездумная операция, которая блокирует весь процесс, ничего больше обрабатываться не будет пока не закончится операция. Ни обрабатываться новые соединения, и старые... вообще ничего. Проблемы это будет создавать если у вас операции блокирующие длятся больше десятых долей милисекунды. То есть обычно все отрабатывает очень быстро, а все медленное (обращение к файловой системе, к базе данных) нужно стараться делать асинхронно, что бы во время ожидание можно было что-то еще поделать процессу.
    Ответ написан
    3 комментария