La spécification de la machine virtuelle Java définit le modèle de mémoire Java pour protéger les différences de mémoire de divers matériels et systèmes d'exploitation afin d'obtenir des effets d'accès à la mémoire multiplateforme.
Afin d'obtenir de meilleures performances d'exécution, le modèle de mémoire Java n'empêche pas le moteur d'exécution d'utiliser le cache ou le cache spécifique du processeur pour interagir avec la mémoire principale (qui peut être comparée à la RAM, mais fait partie de la mémoire de la machine virtuelle). La mémoire de travail (qui peut être comparée au cache et fait également partie de la mémoire de la machine virtuelle) est privée au thread.
La division de la mémoire de travail et de la mémoire principale est différente de la division du tas Java, de la pile et de la zone de méthode. Si elles correspondent à peine, la mémoire principale peut être comprise comme la partie données d'instance. dans le tas, et la mémoire de travail correspond à une partie de la zone dans la pile
-----Citation<<Compréhension approfondie de la machine virtuelle JAVA>>
Un thread aura une pile de threads et un appel de méthode est un cadre de pile. Une trame de pile est divisée en : zone de variables locales, pile d'opérandes et zone de données de trame. Vous pouvez comprendre que la mémoire de travail est constituée des données contenues dans la zone de variables locales.
La définition du cache ici est trop large et peut provoquer une ambiguïté. Regarde ça lz
La spécification de la machine virtuelle Java définit le modèle de mémoire Java pour protéger les différences de mémoire de divers matériels et systèmes d'exploitation afin d'obtenir des effets d'accès à la mémoire multiplateforme.
Afin d'obtenir de meilleures performances d'exécution, le modèle de mémoire Java n'empêche pas le moteur d'exécution d'utiliser le cache ou le cache spécifique du processeur pour interagir avec la mémoire principale (qui peut être comparée à la RAM, mais fait partie de la mémoire de la machine virtuelle). La mémoire de travail (qui peut être comparée au cache et fait également partie de la mémoire de la machine virtuelle) est privée au thread.
La division de la mémoire de travail et de la mémoire principale est différente de la division du tas Java, de la pile et de la zone de méthode. Si elles correspondent à peine, la mémoire principale peut être comprise comme la partie données d'instance. dans le tas, et la mémoire de travail correspond à une partie de la zone dans la pile
-----Citation<<Compréhension approfondie de la machine virtuelle JAVA>>
Un thread aura une pile de threads et un appel de méthode est un cadre de pile. Une trame de pile est divisée en : zone de variables locales, pile d'opérandes et zone de données de trame.
Vous pouvez comprendre que la mémoire de travail est constituée des données contenues dans la zone de variables locales.
@wlingxiao a déclaré dans "Compréhension approfondie de la machine virtuelle JAVA", deuxième édition, 12.3.1 Mémoire principale et mémoire de travail