我们通过托管 IronRuby 引擎实现表达式评估器。求值器的简化版你可以看here .
现在我们正尝试通过在多线程中执行表达式来提高 IronRuby 的性能(我们做到了)。一个问题困扰着我们——Execute 方法线程安全吗?
最佳答案
ScriptRuntime
、ScriptEngine
和 ScriptScope
都是线程安全的,设计用于线程之间。具体来说,ScriptScope
使用线程安全的数据存储,因此 ScriptScope
可以在线程之间共享。
如果您提供自己的范围供脚本执行,则需要确保该范围的数据存储是线程安全的。此外,在 ScriptScope
中改变数据时,通过锁定确保线程安全,因此请注意许多不同的线程改变共享的 ScriptScope
会降低性能。从 ScriptScope 读取数据不会锁定。
关于.net - IronRuby ScriptSource.Execute 线程安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1967079/