Java 在JVM之间共享数据

Java 在JVM之间共享数据,java,jvm,Java,Jvm,今天有人问我一个问题,关于如何将数据从一个JVM1中运行的线程t1共享到另一个JVM2中运行的线程2,类似于JVM3中的另一个线程t3。做完一些家庭作业后,我告诉了我以下的答案。如果你有更好更有效的答案,请告诉我 系列化 JavaNIO流 我认为这取决于应用程序的上下文。您有多种选择: 序列化可以工作,但如果代码更改,很可能会中断。这可能导致数据丢失 要在多个应用程序之间共享数据,可以使用数据库。在我看来,这是最好的选择之一,因为您的数据将是结构化的 此外,还可以使用格式化的文本文件。只需选择

今天有人问我一个问题,关于如何将数据从一个JVM1中运行的线程t1共享到另一个JVM2中运行的线程2,类似于JVM3中的另一个线程t3。做完一些家庭作业后,我告诉了我以下的答案。如果你有更好更有效的答案,请告诉我

  • 系列化
  • JavaNIO流

  • 我认为这取决于应用程序的上下文。您有多种选择:

    • 序列化可以工作,但如果代码更改,很可能会中断。这可能导致数据丢失
    • 要在多个应用程序之间共享数据,可以使用数据库。在我看来,这是最好的选择之一,因为您的数据将是结构化的
    • 此外,还可以使用格式化的文本文件。只需选择如何格式化数据,将其放入文件中,然后从另一个应用程序读取该文件
    • 如果JVM在不同的计算机上,可以尝试使用套接字。这样,您的应用程序将能够通过网络进行通信
    • 如果可以让服务器充当对象的中继,那么也可以使用消息传递服务器(我考虑的是JMS)
    -------------                                                   -----------------
    jvm 1                  PASS THE DATA TO ANOTHER THREAD IN A         JVM2  
    
                             NOTHER JVM
                             ===============>>>>>  
    tHREAD T1                                                          tHREAD T2
    --------------                                                  -------------------