IronRuby ScriptSource.Execute线程是否安全?

Ser*_*oda 3 .net performance multithreading ironruby expression-evaluation

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

现在我们试图通过在许多线程中执行表达式来获得IronRuby的更多性能(我们得到了它).一个问题困扰我们 - Execute方法线程是否安全?

Jim*_*nti 5

ScriptRuntime,ScriptEngine并且ScriptScope都是线程安全的,旨在用于线程之间.具体来说,ScriptScope使用线程安全的数据存储,因此ScriptScope可以在线程之间共享.

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