ScriptingContainer, среда выполнения Ruby и карта переменных
(Примечание о перекрестном посте: этот вопрос также был размещен в списке рассылки JRuby (jruby@ruby-lang.org) 20 декабря и на форуме JRuby 2 января, но пока не получил никакого ответа).
Этот вопрос касается понимания влияния параметра LocalContextScope при наличии многопоточности.
В JRuby Wiki мы можем найти рецепт, который поможет выбрать лучшее значение для параметра LocalContextScope. На этой странице объясняется, что этот параметр определяет, является ли ScriptingContainer и / или Ruby Runtime и / или Variable Map совместно используемыми потоками. Однако я хотел бы получить более глубокое понимание этой проблемы, в частности, какая часть "системы" реализована в каком из этих трех компонентов.
В качестве конкретного примера: когда я создаю глобальные переменные в Ruby, или новые классы, или функции и переменные в контексте верхнего уровня, принадлежат ли они ScriptingContainer, среде выполнения или карте переменных? Если я не знаю этого, я не знаю, какой LocalContextScope мне нужно использовать.