.net - IronRuby ScriptSource.Execute 线程安全吗?

标签 .net performance multithreading ironruby expression-evaluation

我们通过托管 IronRuby 引擎实现表达式评估器。求值器的简化版你可以看here .

现在我们正尝试通过在多线程中执行表达式来提高 IronRuby 的性能(我们做到了)。一个问题困扰着我们——Execute 方法线程安全吗?

最佳答案

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

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

关于.net - IronRuby ScriptSource.Execute 线程安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1967079/

相关文章:

java - CompletableFuture, thenCompose 方法

c - pthread 的函数中声明的变量是否在线程之间共享?

c# - HttpRequestMessage 不允许授权 header 值

java - 将InputStream复制到OutputStream的更好方法

c# - 从字符串构造嵌套属性的 LambdaExpression

java - 为什么 Collections.synchronizedSet(HashSet) 对于 addAll、retainAll 和 contains 比 HashSet 更快?

performance - 没有iframe的youtube视频(最快的页面加载速度)

javax.sound.sampled 多线程安全

c# - 如何使用 GDI 为多行文本的某些部分添加下划线?

C# 将字符串元素数组传递给 Task.Run