3

我们通过托管 IronRuby 引擎实现了表达式评估器。您可以在此处查看简化版的评估器。

现在我们正试图通过在多个线程中执行表达式来从 IronRuby 获得更多性能(我们得到了它)。一个问题困扰着我们——Execute 方法线程安全吗?

4

1 回答 1

5

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

如果您为脚本执行提供自己的作用域,则需要确保作用域的数据存储是线程安全的。此外,在更改 a 中的数据时ScriptScope,通过锁定确保线程安全,因此请注意,许多不同的线程更改共享数据ScriptScope会降低性能。从 ScriptScope 读取数据不会锁定。

于 2009-12-29T03:28:45.693 回答