Domanda

Siamo implementati di valutatore delle espressioni tramite hosting del motore ironruby. Versione semplificata del valutatore che puoi vedere qui.

Ora stiamo cercando di ottenere più prestazioni da Ironruby tramite le espressioni in molti thread (e l'abbiamo ottenuto). Una domanda ci dà fastidio: il thread del metodo Esecut è sicuro?

È stato utile?

Soluzione

ScriptRuntime, ScriptEngine, e ScriptScope sono tutti sicuri del filo, progettati per essere utilizzati tra i thread. In particolare, ScriptScope Utilizza un data-store thread-safe, quindi ScriptScope può essere condiviso tra i thread.

Se si fornisce il proprio ambito da eseguire per gli script, dovrai assicurarti che l'archivio dati di Ambito sia sicuro. Inoltre, quando si muta i dati in a ScriptScope, la sicurezza thread è garantita dal blocco, quindi tieni presente che molti thread diversi che mutano un condiviso ScriptScope degraderà le prestazioni. La lettura dei dati da un screptscope non si blocca.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top