Frage

Wir werden den Ausdrucksbewerter über die Hosting IronRuby Engine implementiert. Vereinfachte Version des Evaluators, die Sie sehen können hier.

Jetzt versuchen wir, durch IronRuby mehr Leistung zu erzielen, indem wir in vielen Threads ausführte (und wir haben es bekommen). Eine Frage stört uns - ist ausführender Methode -Thread sicher?

War es hilfreich?

Lösung

ScriptRuntime, ScriptEngine, und ScriptScope sind alle fadensicher und für die Verwendung zwischen Threads ausgelegt. Speziell, ScriptScope Verwendet also einen thread-safe Datengeschäft, also ScriptScope kann zwischen Threads geteilt werden.

Wenn Sie Ihren eigenen Umfang für Skripte zur Verfügung stellen, gegen die Skripte ausgeführt werden können, müssen Sie sicherstellen, dass der Datenspeicher des Scope thread-safe ist. Auch wenn Daten in a mutieren ScriptScope, Die Gewindesicherheit wird durch Verriegelung sicher ScriptScope wird die Leistung beeinträchtigen. Das Lesen von Daten aus einem Skriptscope sperrt nicht.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top