En lisant ce article , je sais que chaque application Java s'exécutera une instance de machine virtuelle Java spécifique. Donc, si j'exécute les commandes suivantes ("Java -Jar Test1.jar", "Java -Jar Test2.jar", je recevrai deux processus dans le système. Et si chaque commande a utilisé la taille du tas par défaut, par exemple 256 m. Le coût total de la mémoire est de 512m, est-ce correct? Aussi j'ai d'autres questions: p>
PS: J'ai googlé et j'ai beaucoup de réponses différentes, j'ai été totalement confuse. Quiconque peut m'aider sur ce genre de questions ou encore plus de profondeur de la machine virtuelle Java. Par exemple, comment ça marche. P>
3 Réponses :
1) Non, mais il existe une manière de lancer des applications Java en tant que services avec des wrappers (Google pour "Service Java"). P>
2) oui. p>
3) Vous pouvez utiliser la communication entre les processus (v.g. http). Mais il n'y a pas de raccourcis du fait que tous les processus sont gérés dans JVM. P>
4) non p>
Le JVM est un processus standard, tout comme n'importe quel autre. En tant que tel, il n'y a pas de communication implicite ni de partage d'État entre les deux. Chacun aura son propre tas, des fils, etc. Si vous en tuez un, cela n'affectera pas l'autre. P>
Qu'est-ce que em> sera partagé les pages de code de la JVM elle-même. Le noyau est suffisamment intelligent pour identifier le même binaire ( tout em> binaire - non seulement le JVM) fonctionnant deux fois et réutiliser l'image. Ceci s'applique uniquement au code binaire actuel - pas son état. Voir ici pour plus d'informations re. Linux. P>
Le JVM n'est pas un processus de démon, mais pourrait être démarré sur le démarrage du système sous forme de processus Windows Service ou Unix / Linux (via /etc/init.d code> scripts). Voici comment vous (disons) exécuter un service Web écrit en Java lorsqu'une machine est démarrée. P>
Ne pas contredire mais clarifier; La réutilisation des pages de mémoire de code (binaire) est une fonction OS, pas une java.
@ Sjuan76 - Il suffit d'ajouter une clarification. THX
@BrianAnwew ici ma dernière question, autant que je sache, chaque application Java est individuelle et chacune d'entre elles a sa propre utilisation de la mémoire. Mais comment il gère la taille du tas via les options "-XMS et -XMX"? Ceci est l'un des modèles de mémoire JVM ( iBM.com/Developerworks/aix/ Bibliothèque / au-Javapart2.html ), j'ai lu mais je me sens déroutant.
pour le système d'exploitation, JVM comme une application utilisateur. Chaque instance JVM est individuelle. Code> p>
cause le crash de système d'exploitation code>, d'autres JVM seront effectués. Li>
ol>