Действительно ли NodeJS однопотоковый?

Node.js решает «один поток на проблему подключения», помещая в его ядро ​​модель, основанную на событиях, используя цикл событий вместо потоков. Все дорогостоящие операции ввода-вывода всегда выполняются асинхронно с обратным вызовом, который выполняется после завершения инициированной операции.

Наблюдение, ЕСЛИ любая операция происходит, обрабатывается механизмами мультиплексирования, такими как epoll ().

Мой вопрос теперь:

  • Почему NodeJS не блокируется при использовании блокирующих системных вызовов выберите / epoll / kqueue?

  • Или это вообще не однопоточный узел NodeJS, поэтому второй поток будет
    необходимо соблюдать все операции ввода-вывода с помощью select / epoll / kqueue?

59
задан Robert Harvey 15 March 2013 в 02:55
поделиться