2014-09-26 26 views
1

是否有可能在nodejs中創建多個線程。我不是通過使用Cluster或 fork或exec方法來問的。它實際上是創建子進程而不是線程。我想在node.js中實際實現單獨的線程。Node.js中的多線程

+0

node.js中只有一個線程,你可以使用spawn來啓動更多的node.js實例,但是child_process會更加有效。你想要多線程? – DrakaSAN 2014-09-26 09:10:04

+0

你想做什麼?很可能你並不需要線程。 – Jivings 2014-09-26 09:10:49

+0

但是,在僅有一個線程中,我的應用程序正在響應較晚,因爲它正在並行執行一系列作業。所以我想在一個單獨的線程中執行重要的工作,以便它能夠快速響應那個工作。 – Sanket 2014-09-26 09:14:59

回答

0

NodeJS當前不支持多個線程。有人曾經談論過(甚至還在努力)提供線程支持,但還沒有發生(還沒有?)。在這方面似乎沒有太大的推動力。

搜索「NodeJS multiple threads」會發現像JXcore這樣的東西,它聲稱100%的NodeJS兼容性(這是一個帶有「增加的功能」的分支)。因人而異。

+0

好的謝謝,但有沒有什麼方法可以在nodejs的事件循環中對排隊作業應用優先級。 – Sanket 2014-09-26 09:18:27

+2

@Sanket:這將是一個完全獨立的問題。我會把它作爲一個發佈。 – 2014-09-26 09:19:34

0

As T.J. Crowder提到,你可以使用JXcore。這是一個開源項目。

運行一個應用程序的多線程是最簡單的方法:

console.log("Hello thread", process.threadId); 

和運行這樣說:

$ jx mt:3 hello.js 

它運行一個進程內3個線程/實例。

Jxcore還有其他的方法,在線程中使用tasks