我一直在为这个概念而挣扎:
您可以在nodejs中运行rust程序。
所以我们都知道rust速度快,可以很好地处理并发,并且具有静态内存管理等功能
所以,也许我理解这个概念是愚蠢的。Nodejs是一个单线程。一切都在一个事件循环中运行。
如果我们有一个用rust编写的程序,并且有多进程调用等,这是如何工作的…
如果我们在nodejs中运行程序,nodejs的行为是什么?
NodeJs的插件API(N-API(在这里进行了说明。来自异步线程安全函数调用部分:
JavaScript函数通常只能从本机插件的主线程调用。如果加载项创建了额外的线程,则必须不从这些线程调用需要
napi_env
、napi_value
或napi_ref
的N-API函数。
当插件有额外的线程,并且需要根据这些线程完成的处理来调用JavaScript函数时,这些线程必须与插件的主线程通信,以便主线程可以代表它们调用JavaScript函数。线程安全函数API提供了一种简单的方法。
因此,大多数调用对非插件主线程(基本上是影响Javascript运行时的任何东西(都是不安全的,尽管有一些调用专门用于帮助实现这一点。