admin管理员组文章数量:1394217
Suppose I have the following piece of code
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;
}
Is it true that one cannot execute this code using multiple threads? It seems like HandleScope
is not designed to be used in multithreaded applications.
I can use the v8::Locker
and v8::Unlocker
methodes but that would always give me execution traces as this:
t1: a = 1
t1: b = 2
t2: a = 1
t2: b = 2
I hope someone can give me a hint on getting this code multithreaded so that a possible execution trace could like this:
t1: a = 1
t2: a = 1
t1: b = 2
t2: b = 2
Suppose I have the following piece of code
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;
}
Is it true that one cannot execute this code using multiple threads? It seems like HandleScope
is not designed to be used in multithreaded applications.
I can use the v8::Locker
and v8::Unlocker
methodes but that would always give me execution traces as this:
t1: a = 1
t1: b = 2
t2: a = 1
t2: b = 2
I hope someone can give me a hint on getting this code multithreaded so that a possible execution trace could like this:
t1: a = 1
t2: a = 1
t1: b = 2
t2: b = 2
Share
Improve this question
edited Dec 13, 2017 at 20:44
ROMANIA_engineer
56.8k30 gold badges210 silver badges205 bronze badges
asked May 10, 2010 at 12:31
willemwillem
2 Answers
Reset to default 2According to v8 issue 510, a feature called "Isolates" was added to the trunk some months back. This should allow multiple (non-interacting) instances of v8 in a single process.
Look at this post. The v8 engine has a Locker class, that lets you preempt your code. With this you can use multiple threads.
本文标签: Google Javascript v8multithreadingStack Overflow
版权声明:本文标题:Google Javascript v8 - multithreading - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1744715096a2621354.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论