Node的C ++加载项,非阻塞?

时间:2017-09-01 18:30:23

标签: javascript c++ node.js

使用Node创建一个相当大的Web应用程序,并运行到c ++附加组件的概念,并且对这个概念完全陌生,我想知道;是用C ++编写的用于阻止线程的Node.js的附加组件吗?

例如,当然运行异步的数学算法,如果在JS中实现则会阻塞该线程。

1 个答案:

答案 0 :(得分:2)

本机代码加载项可以写入阻塞或非阻塞。例如,fs.readFile()fs.readFileSync()每个都有本机代码附加实现(它们恰好是内置附加组件,但接口大致相同)。因此,它取决于您如何实现附加功能,以确定它们是否具有异步接口(并通过事件队列传回结果)或仅阻止功能。

本机附加代码中的数学计算必须创建自己的本机线程或进程才能以异步和非阻塞方式运行。但这当然可以做到。

你可以通过将代码放在另一个进程(用任何语言编写)中然后通过http接口从node.js与它进行通信来构建这样的东西。您甚至不必通过node.js附加组件来执行此操作。