2010-09-18 265 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