@Rouslan943
Знаю что Node.js использует однопотоковый цикл и цикл обработки событий для обработки запросов, обрабатывающих только по одному за раз. Но все же, как это работает, скажем, 7 000 одновременных запросов. Цикл обработки событий будет обрабатывать все запросы? Разве это не займет слишком много времени?
Я не могу понять , как это может быть быстрее, чем многопоточный веб-сервер. Хотя понимаю, что многопоточный веб-сервер будет дороже в ресурсах (память, процессор), но не будет ли он еще быстрее? Я наверное ошибаюсь; объясните, как этот однопотоковый процесс выполняется быстрее при большом количестве запросов, и что он обычно делает (на низком уровне) ?
Я не могу понять , как это может быть быстрее, чем многопоточный веб-сервер. Хотя понимаю, что многопоточный веб-сервер будет дороже в ресурсах (память, процессор), но не будет ли он еще быстрее? Я наверное ошибаюсь; объясните, как этот однопотоковый процесс выполняется быстрее при большом количестве запросов, и что он обычно делает (на низком уровне) ?
Решения вопроса 0
Ответы на вопрос 2
@sergey-gornostaev
Самые большие затраты на ввод/вывод. Грубо говоря, если один запрос 90% времени ожидает I/O, то в случае 10 000 конкурентных запросов сервер 9,999% времени находится в ожидании I/O, а асинхронное выполнение позволяет это время использовать с пользой или попросту списать. В то время как многопоточный сервер, обрабатывающий 10k соединений, 90% времени будет тратить на переключение контекста, да и то, если памяти хватит.
@profesor08
Так-же как и любые другие веб серверы, быстро переключается на выполнение других операций, пока текущие чего-то ожидают.