我想知道用 Node 制作一个相当大的 Web 应用程序,然后遇到 c++ 附加组件的概念,并且对这个概念完全陌生;是用 C++ 为 Node.js 编写的附加组件会阻塞线程吗?
例如一个数学算法,当然是异步运行的,如果用 JS 实现会阻塞线程。
最佳答案
native 代码附加组件可以编写为阻塞或非阻塞。例如,fs.readFile()
和 fs.readFileSync()
都有原生代码插件实现(它们恰好是内置插件,但界面基本相同)。因此,这取决于您如何实现附加功能,以确定它们是否具有异步接口(interface)(并通过事件队列传回结果)或只是阻塞功能。
native 附加代码中的数学计算必须创建它自己的 native 线程或进程,以便异步和非阻塞地运行。但这当然可以做到。
您可以通过将代码放入另一个进程(用任何语言编写)然后通过 http 接口(interface)从 node.js 与它通信来制作类似这样的原型(prototype)。您甚至不必通过 node.js 插件来完成。
关于javascript - Node 的 C++ 附加组件,非阻塞?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46006103/