मान लीजिए मैं कोडगूगल जावास्क्रिप्ट v8 - multithreading
bool run (void)
{
HandleScope hande_scope;
Handle<String> source;
Local<Script> script;
Persistent<Context> context;
context = Context::New();
Context::Scope context_scope(context);
script = Script::Compile("var a = 1; var b = 2;");
Local<Value> result = script->Run();
if (result.IsEmpty())
return false;
else
return true;
}
का निम्न भाग यह सही है कि इस कोड का उपयोग कर एक से अधिक थ्रेड पर अमल नहीं किया जा सकता है? ऐसा लगता है कि HandleScope
मल्टीथ्रेड किए गए अनुप्रयोगों में उपयोग करने के लिए डिज़ाइन नहीं किया गया है। मैं v8::Locker
और v8::Unlocker
methodes उपयोग कर सकते हैं लेकिन यह है कि हमेशा इस रूप में मेरे निष्पादन निशान देना होगा:
t1: a = 1
t1: b = 2
t2: a = 1
t2: b = 2
मुझे आशा है कि कोई मुझे इस कोड थ्रेड ताकि संभावित निष्पादन का पता लगाने के लिए इस तरह हो सकता है हो रही है पर एक संकेत दे सकते हैं:
t1: a = 1
t2: a = 1
t1: b = 2
t2: b = 2