Мультипроцессор с v8 и node.js - PullRequest
       34

Мультипроцессор с v8 и node.js

1 голос
/ 29 октября 2010

Я читал, что V8 не многопоточный, и не может быть в дизайне.

Это правда?Действительно ли это так, что я могу иметь сценарий, оптимизированный для одновременной работы (на node.js), но этот параллелизм не может распространяться на несколько процессоров?Я вроде думал, что это было основной причиной одновременного проектирования.

Ответы [ 4 ]

3 голосов
/ 22 ноября 2012

Для Node v0.8 и выше, модуль https://github.com/audreyt/node-webworker-threads теперь предоставляет тот же API Web Worker, реализованный с собственными потоками, предназначенными для многоядерного планирования, с меньшими затратами на сериализацию и создание рабочих мест по сравнению с процессами рабочий узел модуля.

1 голос
/ 05 ноября 2010

Что касается node.js, он не параллельный, а асинхронный. Есть один поток и один цикл обработки событий, который обрабатывает все операции ввода-вывода в node.js.

В node.js есть несколько инструментов для параллелизма, которые в основном вращаются вокруг нескольких процессов. Но, как и все node.js, они находятся на ранних стадиях разработки. Например, вы можете управлять несколькими рабочими процессами, используя fugue , или вы можете использовать, возможно, знакомый Web Workers API, используя node-worker .

0 голосов
/ 09 февраля 2012

Начиная с v0.6, вы можете использовать кластерное средство .

Связь между процессами отдельных узлов влечет за собой некоторые издержки, и поэтому поддержка v8 изолируетНекоторое время считалось , но в итоге не преследовалось из-за неадекватного улучшения в сравнении со сложностью.

(Изоляты v8 позволили бы использовать потоки вместо процессов, что позволяетдля более эффективного общения.)

0 голосов
/ 29 октября 2010

См. ограничение времени выполнения .Это возможно, но я не уверен, насколько вероятно, что это будет так просто, как, скажем, Java.

...