2010-09-18 7 views
6

Aujourd'hui, on m'a posé cette question sur le partage de données d'un thread t1 qui s'exécute dans un jvm 1 à un thread 2 s'exécutant dans un autre jvm 2, et de même un autre thread t3 dans jvm 3. après quelques devoirs je avait dit à la réponse suivante. laissez-moi savoir si vous avez une meilleure réponse et efficace.Partage de données entre JVM

  1. SÉRIALISATION
  2. java nio flux
-------------             ----------------- 
jvm 1     PASS THE DATA TO ANOTHER THREAD IN A   JVM2 

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

Répondre

11

Je pense que cela dépend du contexte de votre application. Vous avez plusieurs options:

  • La sérialisation peut fonctionner, mais elle risque de se casser si votre code change. Cela peut entraîner une perte de données.
  • Pour partager des données entre plusieurs applications, vous pouvez utiliser une base de données. C'est l'une des meilleures options dans mon esprit, puisque vos données seront structurées.
  • Vous pouvez également utiliser un fichier texte formaté. Choisissez simplement comment formater vos données, mettez-les dans un fichier, puis lisez le fichier depuis une autre application.
  • Si votre machine virtuelle Java se trouve sur des ordinateurs différents, vous pouvez essayer d'utiliser des sockets. De cette façon, vos applications pourront communiquer via le réseau.
  • Si vous pouvez avoir un serveur qui agit comme un relais pour vos objets, vous pouvez également utiliser un serveur de messagerie (je pense à JMS).
+0

merci vivien pour la réponse –

Questions connexes