Graal Javascript-线程安全

Graal Javascript-线程安全,javascript,java,multithreading,graalvm,graaljs,Javascript,Java,Multithreading,Graalvm,Graaljs,在多线程应用程序中使用Graal.js的推荐方法是什么(例如根据servlet请求)?我们像这样使用Graal.js jsContext = Context.newBuilder("js").allowAllAccess(true).build(); bindings = jsContext.getBindings("js"); jsContext.eval("js", jsCodeString); 我们应该为每个执行线程提供唯一的上下文/绑定。这可以通过上下文/绑定对池或使用threadlo

在多线程应用程序中使用Graal.js的推荐方法是什么(例如根据servlet请求)?我们像这样使用Graal.js

jsContext = Context.newBuilder("js").allowAllAccess(true).build();
bindings = jsContext.getBindings("js");
jsContext.eval("js", jsCodeString);

我们应该为每个执行线程提供唯一的上下文/绑定。这可以通过上下文/绑定对池或使用threadlocal来实现。这是正确的方法吗?

您不应该同时从多个线程访问一个
上下文。因此,您提出的解决方案(一组
Context
s或线程本地
Context
s)是实现这一点的有效方法

graalvm/graaljs
repository一些线程相关的示例。您可以在那里(中)看到线程本地
上下文的用法

仅供参考:这里有一个关于Graal JavaScript多线程的例子,可以澄清您可能遇到的更多问题