(交叉发帖:这个问题也已于 12 月 20 日在 JRuby 邮件列表 (jruby@ruby-lang.org) 和 1 月 2 日在JRuby 论坛上发布,但尚未得到任何回复)。
这个问题是关于了解 LocalContextScope 参数在存在多线程时的影响。
我们可以在JRuby Wiki上找到 一个有助于为 LocalContextScope 参数选择最佳值的方法。本页解释说,该参数控制 ScriptingContainer 和/或 Ruby 运行时和/或变量映射是否在线程之间共享。但是,我想对这个问题有更深入的了解,特别是“系统”的哪一部分是在这三个组件中的哪一个组件中实现的。
举个具体的例子:当我在 Ruby 中创建全局变量、新类或顶级上下文中的函数和变量时,它们属于 ScriptingContainer、运行时还是变量映射?除非知道这一点,否则我不知道我必须使用哪个 LocalContextScope。