簡體   English   中英

node.js中的子/次線程

[英]Child/Secondary thread in node.js

我有一個要求,我必須獨立於主節點線程運行一個進程。 基本上,目的是從主節點線程數據中啟動輔助進程,而不是等待回調或任何結果,因為輔助進程不必將任何東西還給主線程。

我想實現這一目標,而不阻塞主nodejs線程,並且主線程不關心將數據傳遞到輔助線程后會發生什么。 基本上,就次級進程而言,主線程的過程在將數據發送到次級線程之后結束。

有什么建議可以實現這一目標嗎? 我讀到有關子進程,Webworkers,dnode和進程nexttick的信息,但我不確定實現它的最佳方法是什么。 我嘗試了nexttick,但是我的經驗是,盡管異步,它仍然是主線程的一部分。

如果您的目標只是開始過程而不考慮輸出,則應將spawndetached:true

對於傳遞數據,您可以使用stdin進行編寫(請參見示例),也可以傳遞命令行參數,或者寫入文件並重定向。

我實現了子進程前叉,用於將用於輔助/后台處理的數據傳遞給子進程(無需斷開子進程的連接)。 到目前為止,這似乎很好地完成了我的工作。 如果遇到任何問題或找到更好的解決方案,我將進行更新。

//Main Process
var cp = require('child_process').fork('child.js');
cp.send(data);


//Child Process (child.js)
process.on('message', function(data){
 //do something with data
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM