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