2010-09-18 143 views
6

今天有人问我这个问题的一些功课之后,从在一个JVM运行1到另一个JVM 2运行的线程2线程T1共享数据,同样给另一个线程T3在JVM 3.我告诉了以下答案。如果您有更好更有效的答案,请告诉我。共享数据JVM之间

  1. SERIALIZATION
  2. 的Java NIO流
-------------             ----------------- 
jvm 1     PASS THE DATA TO ANOTHER THREAD IN A   JVM2 

         NOTHER JVM 
         ===============>>>>> 
tHREAD T1               tHREAD T2 
--------------             ------------------- 

回答

11

我认为这取决于你的应用程序的情况下。您有多个选项:

  • 序列化可以工作,但如果代码更改很可能会中断。这可能会导致数据丢失。
  • 要在多个应用程序之间共享数据,可以使用数据库。这是我心目中最好的选择之一,因为你的数据将被结构化。
  • 此外,您可以使用格式化的文本文件。只需选择如何格式化数据,将其放入文件中,然后从另一个应用程序中读取文件。
  • 如果您的JVM在不同的计算机上,您可以尝试使用套接字。这样,您的应用程序将能够通过网络进行通信。
  • 如果您可以让服务器像对象一样充当中继,那么您还可以使用消息传递服务器(我正在考虑JMS)。
+0

感谢vivien的回答 – 2010-09-18 19:43:58