IronRubyエンジンをホストすることで式エバリュエーターを実装します。あなたがここで見ることができる評価者の簡略化されたバージョン。
現在、多くのスレッドで式を実行することにより、IronRubyからより多くのパフォーマンスを取得しようとしています(そしてそれを取得しました)。1つの質問が気になります-実行メソッドのスレッドは安全ですか?
IronRubyエンジンをホストすることで式エバリュエーターを実装します。あなたがここで見ることができる評価者の簡略化されたバージョン。
現在、多くのスレッドで式を実行することにより、IronRubyからより多くのパフォーマンスを取得しようとしています(そしてそれを取得しました)。1つの質問が気になります-実行メソッドのスレッドは安全ですか?
ScriptRuntime
、、ScriptEngine
およびScriptScope
はすべてスレッドセーフであり、スレッド間で使用するように設計されています。具体的にScriptScope
は、スレッドセーフなデータストアを使用するため、ScriptScope
スレッド間で共有できます。
スクリプトを実行するための独自のスコープを提供する場合は、スコープのデータストアがスレッドセーフであることを確認する必要があります。また、でデータを変更する場合ScriptScope
、スレッドセーフはロックによって保証されるため、共有を変更する多くの異なるスレッドScriptScope
はパフォーマンスを低下させることに注意してください。ScriptScopeからのデータの読み取りはロックされません。