Я использую Rhino 1.6r2 через javax.script
API. Я знаю, что движок Rhino утверждает, что он MULTITHREADED: "Реализация движка внутренне потокобезопасна и скрипты могут выполняться параллельно, хотя эффекты выполнения скрипта в одном потоке могут быть видны скриптам в других потоках."
Что я хотел бы знать, так это то, при каких именно условиях эффекты выполнения одного скрипта будут видны другому? В своем коде я иногда повторно использую объект ScriptEngine
, но для каждого выполнения я создаю новый SimpleBindings
и передаю его в eval(String, Bindings)
. При таком расположении есть ли возможность утечки внутреннего состояния из одного выполнения в другое? Если да, то как?
Здесь есть очень информативный ответ, но он не полностью раскрывает то, что мне нужно знать.