我们通过托管IronRuby引擎来实现表达式求值器。evaluator的简化版本你可以看到here。
现在,我们正试图通过在多个线程中执行表达式来从IronRuby获得更高的性能(我们做到了)。有一个问题困扰着我们-- Execute方法线程安全吗?
发布于 2009-12-29 11:28:46
ScriptEngine和ScriptScope都是线程安全的,设计为在线程之间使用。具体地说,ScriptScope使用线程安全的数据存储,因此ScriptScope可以在线程之间共享。
如果您为执行脚本提供了自己的作用域,则需要确保作用域的数据存储是线程安全的。此外,在更改ScriptScope中的数据时,通过锁定来确保线程安全,因此请注意,许多不同的线程更改共享的ScriptScope会降低性能。从ScriptScope读取数据不会锁定。
https://stackoverflow.com/questions/1967079
复制相似问题