Pregunta

Estamos implementados Evaluador de expresión mediante el alojamiento de IronRuby Engine. Versión simplificada de Evaluator que puede ver aquí.

Ahora estamos tratando de obtener más rendimiento de Ironruby mediante la ejecución de expresiones en muchos hilos (y lo tenemos). Una pregunta nos molesta: ¿es seguro el hilo del método Execute?

¿Fue útil?

Solución

ScriptRuntime, ScriptEngine, y ScriptScope Todos son seguros de hilos, diseñados para usarse entre hilos. Específicamente, ScriptScope Utiliza una tienda de datos segura de hilo, entonces ScriptScope se puede compartir entre hilos.

Si proporciona su propio alcance para que los scripts se ejecuten, deberá asegurarse de que el almacén de datos de Scope sea seguro de subprocesos. Además, al mutar los datos en un ScriptScope, la seguridad de los hilos se garantiza al bloquear, así que tenga en cuenta que muchos hilos diferentes que mutan un compartido ScriptScope Degradará el rendimiento. Leer datos de un scriptscope no se bloquea.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top