我们是通过托管铁鲁比引擎实施的表达评估者。您可以看到的简化版本的评估器 这里.

现在,我们试图通过在许多线程中执行表达式来从Ironruby获得更多的性能(并且我们明白了)。一个问题困扰我们 - 执行方法线程安全吗?

有帮助吗?

解决方案

ScriptRuntime, ScriptEngine, , 和 ScriptScope 都是线程安全的,设计用于在线程之间使用。具体来说, ScriptScope 使用线程安全的数据存储,因此 ScriptScope 可以在线程之间共享。

如果您提供自己的范围供脚本执行,则需要确保范围的数据存储是线程安全的。另外,当在一个中突变数据时 ScriptScope, ,通过锁定来确保线程安全,因此请注意,许多不同的线程突变共享 ScriptScope 会降低性能。从scriptscope读取数据不会锁定。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top