質問

Ironrubyエンジンをホスティングすることにより、Expression Evaluatorが実装されています。あなたが見ることができる評価者の簡素化されたバージョン ここ.

今、私たちは多くのスレッドで式を実行することにより、Ironrubyからより多くのパフォーマンスを得ようとしています(そして、それを手に入れました)。 1つの質問が私たちを気にします - 実行方法スレッドは安全ですか?

役に立ちましたか?

解決

ScriptRuntime, ScriptEngine, 、 と ScriptScope すべてが安全で、スレッド間で使用されるように設計されています。具体的には、 ScriptScope スレッドセーフデータストアを使用するため、 ScriptScope スレッド間で共有できます。

スクリプトが実行するための独自のスコープを提供する場合、Scopeのデータストアがスレッドセーフであることを確認する必要があります。また、aのデータを変えるとき ScriptScope, 、スレッドセーフティはロックすることで保証されているので、共有された多くの異なるスレッドが共有されていることに注意してください ScriptScope パフォーマンスを低下させます。 ScriptScopeからデータを読むとロックされません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top