Меня интересует жизненный цикл и concurrency семантика (Rhino) Script Engine и связанные классы. В частности:
- Предполагается ли
Bindingsбыть потокобезопасным? - Если нескольким потокам разрешено использовать один экземпляр ScriptEngine?
- ... или должен ли каждый поток построить короткоживущий экземпляр?
- ... или сохранить их в пуле?
- Что произойдет, если несколько потоков одновременно вызовут
ScriptEngine.eval(...)? - Те же вопросы для
CompiledScriptэкземпляров - Те же вопросы для реализации интерфейса, сгенерированные с помощью
Invocable.getInterface(...)? - Предположительно, объекты, помещенные в Bindings, следуют за сборкой мусора Java. Как насчет сбора мусора объектов, которые не попадают в привязки?