同一VM中不同应用之间的通信

时间:2013-09-24 12:44:00

标签: java jvm

这可能是一个有点......非正统的问题。我有多个应用程序在同一个JVM中运行,每个应用程序都在自己的类加载器中。这些应用程序需要彼此通信(虽然只是一点点),但我无法将这些自己的共享代码添加到这些应用程序共享的类加载器中,因此我需要使用标准Java运行时提供的工具来完成。

我想到了使用System属性的方法。但是,使用线程安全很难,但我想我可以在一个实体长的随机字符串上使用synchronized

还有其他选择吗?


我想要的沟通如下。这可能会影响合适的选项。

  • 每个应用程序按顺序将其名称放在共享队列中。
  • 每个应用程序同时开始轮询队列以查看其自己的名称是否在头部。如果是,它将执行长时间运行的init任务,然后从队列中提取其名称。

1 个答案:

答案 0 :(得分:1)

使用标准系统类加载器类型的任何结构,同步应用。字符串和整数的映射工作正常。

这意味着你也可以使用任何java.util.concurrent类,它们可能有适合你的问题的队列。