繁体   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