Я новичок в узле и пытаюсь понять неблокирующий характер узла.
На картинке ниже я создал диаграмму высокого уровня запроса.NodeJS: понимание неблокирования/очереди событий/одной нити
Как я понимаю, все процессы от одного пользователя для одного приложения работать на одном потоке.
Что я хотел бы понять, так это то, как логика цикла событий соответствует этой диаграмме. Является ли цикл событий таким же, как конвейер процессора, где находятся команды в очереди?
Представьте себе, что мы загрузить страницу приложения в оперативную память, которая создает поток для чтения из программы:
readstream.on('data', function(data) {});
Инструкция по созданию ReadStream и ждем данные происходят: делает эту команду «повесить» в регистре (ожидая завершения ввода-вывода) в процессоре, тогда как в многопоточной среде процессор просто не принимает новые инструкции из ОЗУ до тех пор, пока результат предыдущего запроса ввода-вывода не будет возвращен в ОЗУ?
Или так я вижу это полностью/частично неправильно?
Только дополнительный (связанный, возможно, глупый) вопрос: запускать разных пользователей на разных потоках на сервере и не однопользовательское преимущество только для одного пользователя?
Я новичок в этом типе деталей, поэтому извините, если этот вопрос не имеет для вас никакого смысла. Но понимание этого кажется для меня важным, прежде чем двигаться вперед.
К сожалению, почти все об этом не так. – Pointy
Не могли бы вы уточнить? – Trace
Трудно уточнить; это буквально все неправильно. Цикл событий не имеет ничего общего с архитектурой процессора - ничего не происходит. Концепции совершенно не связаны. – Pointy