Nodejs C/C++将使用多个Core



我知道NodeJS在单个核心中运行。但是,如果我构建了一个实现了多线程的NodeJS C/C++插件,会发生什么?这个插件将消耗多个核心(当它被认为是)?

node.js只使用一个线程/内核来运行Javascript解释器。

但是node.js在C++中实现的各种库函数或附加函数(如文件I/O)中确实可以使用多个线程/内核。事实上,node.js用于文件I/O的libuv库使用线程轮询作为异步、非阻塞文件I/O实现的一部分。这不会影响Javascript解释器的"单线程性",但有助于实现异步文件I/O等外部函数。

所以,如果你的插件在C++中使用了多个线程,那就没问题了。它将不得不与运行Javascript解释器的一个主线程进行通信。

但是,如果我构建了一个NodeJS C/C++插件实现了多线程?

如果需要的话,您的C++插件可以在其实现中自由使用多个线程。如果它有多个线程在运行,它将不得不以线程安全的方式与主Javascript线程通信。

nodejs本身并不局限于单线程,而是js代码的执行。如果需要的话,Nodejs和你在c/c++中编写的所有插件都可以在内部生成线程。

最新更新