簡體   English   中英

一個JVM中兩個JRuby實例之間的共享對象

[英]Shared objects between two JRuby instances in one JVM

我想知道如果兩個JRuby實例在同一個JVM中運行,是否可以共享一個對象?

我已經嘗試創建一個從兩個JRubies中都引用過的單例Java類,但是似乎每個JRuby都會創建自己的環境,並且是該Java類的自己版本。

有人知道解決這個問題的方法嗎?

好的-實際上是兩個問題。

  1. 要共享的變量必須以$符號開頭(例如$ databases)。
  2. 腳本容器的LocalContextScope必須設置為正確的值。

如果將LocalContextScope設置為“單個”和“並發”,則可能會發生如下所示的情況。

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"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM