IronRuby ScriptSource.executeスレッドは安全ですか?
-
21-09-2019 - |
質問
Ironrubyエンジンをホスティングすることにより、Expression Evaluatorが実装されています。あなたが見ることができる評価者の簡素化されたバージョン ここ.
今、私たちは多くのスレッドで式を実行することにより、Ironrubyからより多くのパフォーマンスを得ようとしています(そして、それを手に入れました)。 1つの質問が私たちを気にします - 実行方法スレッドは安全ですか?
解決
ScriptRuntime
, ScriptEngine
, 、 と ScriptScope
すべてが安全で、スレッド間で使用されるように設計されています。具体的には、 ScriptScope
スレッドセーフデータストアを使用するため、 ScriptScope
スレッド間で共有できます。
スクリプトが実行するための独自のスコープを提供する場合、Scopeのデータストアがスレッドセーフであることを確認する必要があります。また、aのデータを変えるとき ScriptScope
, 、スレッドセーフティはロックすることで保証されているので、共有された多くの異なるスレッドが共有されていることに注意してください ScriptScope
パフォーマンスを低下させます。 ScriptScopeからデータを読むとロックされません。
所属していません StackOverflow