IronRuby ScriptSource.ecute螺纹安全吗?
-
21-09-2019 - |
题
我们是通过托管铁鲁比引擎实施的表达评估者。您可以看到的简化版本的评估器 这里.
现在,我们试图通过在许多线程中执行表达式来从Ironruby获得更多的性能(并且我们明白了)。一个问题困扰我们 - 执行方法线程安全吗?
解决方案
ScriptRuntime
, ScriptEngine
, , 和 ScriptScope
都是线程安全的,设计用于在线程之间使用。具体来说, ScriptScope
使用线程安全的数据存储,因此 ScriptScope
可以在线程之间共享。
如果您提供自己的范围供脚本执行,则需要确保范围的数据存储是线程安全的。另外,当在一个中突变数据时 ScriptScope
, ,通过锁定来确保线程安全,因此请注意,许多不同的线程突变共享 ScriptScope
会降低性能。从scriptscope读取数据不会锁定。
不隶属于 StackOverflow