NodeJS插件(V8)和线程

时间:2015-11-02 15:09:00

标签: c++ node.js multithreading v8 node.js-addon

我想确定并理解线程是否可以在v8 functions内正常运行。要理解这个,请考虑以下示例: 这个服务器行:

var ob1 = addon.buffering(data,size,0,1,client.id);

运行此v8函数:

void buffering(const FunctionCallbackInfo<v8::Value>& args) {
    Isolate* isolate = Isolate::GetCurrent();
    HandleScope scope(isolate);
    //(...input args....)
    t[iterator_test] = thread(&SREngineJulius::Audio_Buffering_thread, &Julius[client_id], node::Buffer::Data(bufferObj), size, final_read, inicio_read, client_id);
   //(....output results...)
} 

进一步说:

var final result = addon.julius(client.id);

将致电:

void julius(const FunctionCallbackInfo<v8::Value>& args) {
    Isolate* isolate = Isolate::GetCurrent();
    HandleScope scope(isolate);
    //(..input args...)
    t[iterator_test].join();
    //(final routines)
    //(output results)
}

我无法在极端环境(有很多用户)中测试此代码,以查看性能。因此,当我调用buffering并且buffering创建thread时,v8 function将等待执行线程(返回到nodejs)?或者,我希望,等待过程将在julius join()进行?

0 个答案:

没有答案