ada*_*dam 7 javascript multithreading node.js node-ffi
假设我有一个C函数,它接受一个回调并在另一个线程上调用它:
void call_in_new_thread(void (*callback)()) {
// spawn a new thread and call `callback` in it ...
}
Run Code Online (Sandbox Code Playgroud)
现在我想通过Node-FFI从javascript调用这个函数,传递一个javascript函数:
var callbackType = 'pointer'
var lib = ffi.Library('mylib', {
'call_in_new_thread': [ 'void', [ callbackType ] ],
})
var callback = ffi.Callback('void', [ 'void' ], function() {
// which thread I'm in now?
console.log("hello!")
})
lib.call_in_new_thread(callback)
Run Code Online (Sandbox Code Playgroud)
我的问题:它有效吗?它是线程安全的吗?javascript回调实际执行哪个线程?在node.js主线程中,还是在ffi库创建的线程中?Node-FFI会以某种方式同步呼叫吗?
我编写了一个快速演示来测试这一点。它使用 Rust 而不是 C 作为本机部分,但这应该等同于 Rust 可以编译为普通共享库。
运行演示后,我会像这样回答我自己的问题:
归档时间: |
|
查看次数: |
470 次 |
最近记录: |