我讀到的是V8不是多線程的,不能通過設計。帶有v8和node.js的多處理器
這是真的嗎?實際上,我可以將腳本優化爲同時運行(在node.js上),但併發性不能擴展到多個處理器?我有點認爲這是併發設計的主要原因。
我讀到的是V8不是多線程的,不能通過設計。帶有v8和node.js的多處理器
這是真的嗎?實際上,我可以將腳本優化爲同時運行(在node.js上),但併發性不能擴展到多個處理器?我有點認爲這是併發設計的主要原因。
至於node.js,它不是併發的而是異步的。有一個線程和一個事件循環,用於處理node.js中的所有IO。
node.js中有一些併發的工具,主要圍繞多個進程。但是像所有的node.js一樣,它們處於開發的早期階段。例如,您可以使用fugue管理多個工作進程,也可以使用可能熟悉的Web Workers API使用node-worker。
參見limiting execution time。這是可能的,但我不確定它有多像Java那麼容易。
既然v0.6可以使用cluster facility。
單獨節點進程之間的通信會產生一些開銷,因此,v8 isolates的支持已經考慮了一段時間,但由於改進和複雜性的權衡不足,最終導致的結果爲not pursued。
(V8的菌株將使使用線程而不是過程的,從而允許更高效的通信。)
對於節點V0.8及以上,https://github.com/audreyt/node-webworker-threads模塊現在提供相同的Web工人API,與實施本地線程旨在實現多核調度,與基於進程的節點工作模塊相比,具有更低的序列化&工作人員創建開銷。