La Mémoire partagée entre deux machines virtuelles

Est-il un moyen en JAVA, pour les deux machines virtuelles (en cours d'exécution sur la même machine physique), à utiliser/partager la même mermory espace d'adressage? Supposons qu'un producteur dans JVM1 met des messages à un pré-définis emplacement de mémoire, peut le consommateur sur JVM2 retrive le msg si elle connaît l'emplacement de la mémoire à regarder?

  • Pas de. Vous ne pouvez pas accéder à l'arbitraire de la mémoire en Java. Mais, vous pouvez partager la mémoire entre deux machines virtuelles. Utiliser JNI et pisc. Ou des prises au cours de bouclage.
  • Autant que je sache, il n'y a rien construit dans l'API de base. Vous pouvez utiliser Sockets à communiquer entre eux ou même par l'intermédiaire d'un tiers
  • qui Jvm ou deux Jvm??? merci de corriger la question du titre.
  • Non, même si c'était une JVM vous ne pouvez pas accéder à un pré-défini l'emplacement de la mémoire. Vous pouvez share de l'espace mémoire à l'aide d'un multi-tenanted JVM comme waratek
  • Vous pouvez penser de la sérialisation des objets dans un fichier et de le renvoyer de l'autre jvm
  • Quel est votre but de faire. Si vous voulez partager des informations entre deux machines virtuelles , alors vous pouvez aller pour un RMI.
  • Selon le cas d'utilisation, il peut être possible d'utiliser de la mémoire mappée IO pour obtenir quelque chose d'à peu près similaire à la mémoire partagée. Voir javacodegeeks.com/2013/05/power-of-java-memorymapped-file.html
  • Pourquoi voulez-vous faire cela? Si c'est si la performance est critique qu'une socket Unix ne fonctionne pas, Java est probablement le mauvais choix.

InformationsquelleAutor OneWorld | 2014-08-20