在nodejs中运行rust程序



我一直在为这个概念而挣扎:

您可以在nodejs中运行rust程序。

所以我们都知道rust速度快,可以很好地处理并发,并且具有静态内存管理等功能

所以,也许我理解这个概念是愚蠢的。Nodejs是一个单线程。一切都在一个事件循环中运行。

如果我们有一个用rust编写的程序,并且有多进程调用等,这是如何工作的…

如果我们在nodejs中运行程序,nodejs的行为是什么?

NodeJs的插件API(N-API(在这里进行了说明。来自异步线程安全函数调用部分:

JavaScript函数通常只能从本机插件的主线程调用。如果加载项创建了额外的线程,则必须不从这些线程调用需要napi_envnapi_valuenapi_ref的N-API函数。

当插件有额外的线程,并且需要根据这些线程完成的处理来调用JavaScript函数时,这些线程必须与插件的主线程通信,以便主线程可以代表它们调用JavaScript函数。线程安全函数API提供了一种简单的方法。

因此,大多数调用对非插件主线程(基本上是影响Javascript运行时的任何东西(都是不安全的,尽管有一些调用专门用于帮助实现这一点。

最新更新