Будут ли мои node.js заблокированы при сравнении списков? - PullRequest
0 голосов
/ 13 марта 2020

Итак, в основном у меня есть 2 списка в приложении node.js, которые я планирую, один из которых я получаю из базы данных, а другой - копируя имена файлов на сервер и сохраняя их в списке.

Проблема в том, что каждая из них имеет ~ 750000 строк, и мне нужно искать каждую строку в одной внутри другой.

Я довольно новичок в узле, поэтому мне интересно Будет ли мое приложение блокироваться для других пользователей при сравнении списков, если оно однопоточное и все? мне кажется, что сравнивать два таких огромных списка довольно интенсивно.

1 Ответ

1 голос
/ 13 марта 2020

Это зависит от того, как вы сравниваете списки и как ваше приложение построено, но обычно да. Например, этот код будет блокировать выполнение:

server.on("request", (req, res)=>{
    // This function will not be called while the comparasion is running.
    // Requests will have to wait until the call stack empties (until nothing
    // is running).
}
compareLists();

Возможно, вам следует взглянуть на рабочие потоки или кластер , чтобы сделать ваше приложение Node.js многопоточный, или вы можете просто выполнить другой скрипт Node.js параллельно с дочерним процессом . Также см. это руководство о JavaScript событии l oop.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...