今天有人问我这个问题,关于从一个 jvm 1 中运行的线程 t1 到另一个 jvm 2 中运行的线程 2 的共享数据,类似于 jvm 3 中的另一个线程 t3。经过一些作业后,我告诉了以下内容回答。如果您有更好更有效的答案,请告诉我。
- 序列化
- java nio 流
------------- ----------------- jvm 1 PASS THE DATA TO ANOTHER THREAD IN A JVM2 NOTHER JVM ===============>>>>> tHREAD T1 tHREAD T2 -------------- -------------------
最佳答案
我认为这取决于您的应用程序的上下文。您有多种选择:
- 序列化可以工作,但如果您的代码更改,很可能会中断。这可能会导致数据丢失。
- 要在多个应用程序之间共享数据,您可以使用数据库。这是我心目中的最佳选择之一,因为您的数据将是结构化的。
- 此外,您还可以使用格式化的文本文件。只需选择如何格式化您的数据,将其放入文件中,然后从另一个应用程序读取该文件。
- 如果您的 JVM 在不同的计算机上,您可以尝试使用套接字。这样,您的应用程序将能够通过网络进行通信。
- 如果您可以让服务器充当对象的中继,您还可以使用消息传递服务器(我正在考虑 JMS)。
关于java - 在 JVM 之间共享数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3743133/