Supponiamo che io ho il seguente pezzo di codiceGoogle Javascript 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;
}
E 'vero che non si può eseguire questo codice con thread multipli? Sembra che lo HandleScope
non sia progettato per essere utilizzato in applicazioni multithread. posso usare il v8::Locker
e v8::Unlocker
methodes ma che sarebbe sempre mi danno tracce di esecuzione come questo:
t1: a = 1
t1: b = 2
t2: a = 1
t2: b = 2
Spero che qualcuno mi può dare un suggerimento su come ottenere questo codice multithreaded in modo che un eventuale traccia di esecuzione potrebbe in questo modo:
t1: a = 1
t2: a = 1
t1: b = 2
t2: b = 2