Я знаю для fact, что NodeJS работает в одном ядре. Но что произойдет, если я создам NodeJS C/C++ Addon, который имеет многопоточность? Этот аддон будет потреблять более одного ядра (когда это предполагается)?Nodejs C/C++ Будет использовать более одного ядра?
ответ
node.js использует только один поток/ядро для запуска интерпретатора Javascript.
Но node.js выполняет и может использовать более одного потока/ядра в различных библиотечных функциях или дополнительных функциях, таких как ввод-вывод файлов, которые реализованы на C++. Фактически библиотека libuv, которую node.js использует для ввода-вывода файлов, использует опрос потоков как часть его реализации асинхронного, неблокирующего ввода-вывода файлов. Это не влияет на «одиночную резьбу» интерпретатора Javascript, но помогает в реализации внешних функций, таких как асинхронный ввод-вывод файлов.
Итак, если ваше дополнение использует более одного потока на своем C++, тогда все в порядке. Он должен будет вернуться к одному основному потоку, на котором запущен интерпретатор Javascript.
Но, что произойдет, если я создам NodeJS C/C++ Addon, который имеет многопоточность?
Ваш аддон C++ может использовать несколько потоков в своей реализации, если это необходимо. Если он работает с несколькими потоками, ему будет необходимо связываться с основным потоком Javascript поточно-безопасным способом.
nodejs сам по себе не ограничен однопоточным, но выполняется код js. Nodejs и все аддоны, которые вы используете в c/C++, могут порождать потоки внутренне, если это необходимо.
- 1. CC более одного человека?
- 2. Процесс использует более одного ядра?
- 3. более одного соединения в NodeJs
- 4. Как использовать setTimeout более одного раза одновременно в nodejs
- 5. Microsoft.AspNet.TestHost.TestServer требует более одного ядра/процессора?
- 6. Пользователь получает более одного уведомления от nodejs
- 7. vert.x использовать более одного обработчика
- 8. Увеличивает ли Nodejs большее количество одновременных пользователей из-за неспособности использовать более одного ядра процессора только однопоточным
- 9. Как использовать более одного типа?
- 10. JQuery - более одного div не будет показывать()?
- 11. граф не будет считать более одного элемента
- 12. Будет ли перемещение кода в пространство ядра более точным?
- 13. Многопроцессорность Python, похоже, не использует более одного ядра
- 14. TBB Reduction вызывает segfault при использовании более одного логического ядра
- 15. Почему нельзя использовать MPMoviePlayerController более одного раза?
- 16. Временные ядра CUDA, которые должны выполняться более одного раза
- 17. Распространять запрос среди более чем одного ядра (PostgreSQL 9.3)
- 18. Можно ли использовать поток более одного раза?
- 19. Использовать более одного KeyEvent в Android
- 20. Можно ли использовать более одного свойства в clCreateCommandQueue в OpenCL
- 21. Как заставить VisualStudio 2010 использовать более одного ядра процессора при компиляции?
- 22. Как использовать NuGet более одного решения
- 23. Могу ли я использовать более одного NavDropdown?
- 24. Как использовать более одного fxml с javaFX?
- 25. Возможно ли использовать Console.ReadLine() более одного раза?
- 26. Как использовать более одного разделителя + JDBC
- 27. Использовать макрос более одного раза в разделе
- 28. Использовать файл-объект «с» более одного раза
- 29. Использовать более одного предиката в параметре функции?
- 30. Двоичный файл нельзя использовать более одного раза?