IronRuby的ScriptSource.Execute方法是否线程安全?

3
我们通过托管IronRuby引擎实现了表达式求值器。您可以在此处查看简化版本的求值器:here
现在,我们正在尝试通过在多个线程中执行表达式来提高IronRuby的性能(并且我们已经成功了)。但是有一个问题困扰着我们 - Execute方法是否线程安全?
1个回答

5

ScriptRuntimeScriptEngineScriptScope都是线程安全的,设计用于在多个线程之间使用。特别地,ScriptScope使用线程安全的数据存储,因此可以在多个线程之间共享。ScriptScope为脚本提供了一个执行范围,如果您自己提供了该范围,则需要确保该范围的数据存储是线程安全的。另外,在更改ScriptScope中的数据时,通过锁定来确保线程安全,因此请注意,许多不同的线程更改共享的ScriptScope会降低性能。从ScriptScope中读取数据不会锁定。


你为什么会使用线程来提高性能?你发现它有什么下降情况吗? - Jimmy Schementi
1
我刚更新了我的回答,发现托管API实际上是线程安全的。这应该会让你的性能提升回来 =) - Jimmy Schementi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接