【发布时间】:2012-07-18 09:26:13
【问题描述】:
我想知道如果两个 JRuby 实例在同一个 JVM 中运行,是否可以在它们之间共享一个对象?
我已经尝试创建一个被两个 JRubies 引用的单例 java 类,但似乎每个 JRuby 都创建了自己的环境和该 java 类的自己的版本。
有人知道解决这个问题的方法吗?
【问题讨论】:
我想知道如果两个 JRuby 实例在同一个 JVM 中运行,是否可以在它们之间共享一个对象?
我已经尝试创建一个被两个 JRubies 引用的单例 java 类,但似乎每个 JRuby 都创建了自己的环境和该 java 类的自己的版本。
有人知道解决这个问题的方法吗?
【问题讨论】:
好的 - 实际上是两个问题。
如果 LocalContextScope 设置为“singleton”和“concurrent”,则可能会出现以下情况。
require 'java'
include Java
import 'org.jruby.embed.ScriptingContainer'
import 'org.jruby.embed.LocalContextScope'
$a = "Test"
container = ScriptingContainer.new LocalContextScope::CONCURRENT
container.run_scriptlet "puts $a"
【讨论】: