【发布时间】:2016-12-22 17:33:23
【问题描述】:
我有一个 C 函数,它接受一个回调并在另一个线程上调用它:
void call_in_new_thread(void (*callback)()) {
// spawn a new thread and call `callback` in it ...
}
我想通过 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)
这有效吗?它是线程安全的吗? JavaScript 回调实际在哪个线程中执行:Node.js 主线程,还是在 FFI 库创建的线程中? Node-FFI 是否以某种方式同步调用?
【问题讨论】:
标签: javascript node.js multithreading node-ffi