Как nodejs обрабатывает десятки тысяч соединений?
Самые большие затраты на ввод/вывод. Грубо говоря, если один запрос 90% времени ожидает I/O, то в случае 10 000 конкурентных запросов сервер 9,999% времени находится в ожидании I/O, а асинхронное выполнение позволяет это время использовать с пользой или попросту списать. В то время как многопоточный сервер, обрабатывающий 10k соединений, 90% времени будет тратить на переключение контекста, да и то, если памяти хватит.
Так-же как и любые другие веб серверы, быстро переключается на выполнение других операций, пока текущие чего-то ожидают.