JMM est un niveau incontournable pour un programmeur qui souhaite approfondir sa compréhension de Java. Cet article est plus théorique et aussi simple à comprendre que possible. J'espère que vous pourrez me corriger s'il y a des erreurs. Parlons ensuite de l'allocation de mémoire principale de jvm. 1 pile de machine virtuelle Java (pile virtuelle Java) La pile de machine virtuelle est privée au thread. Chaque thread a sa propre pile de machine virtuelle, qui est le modèle de mémoire pour l'exécution de la méthode Java. .Chaque Lorsqu'une méthode est exécutée, un cadre de pile est créé sur la pile de la machine virtuelle. Le cadre de pile est une structure de données qui stocke principalement les variables locales dans la méthode (type de base, référence d'objet, type returnAddress (pointant vers l'adresse de). une instruction de bytecode) )), pile d'opérations (faisant référence à la pile d'instructions d'opération après la compilation de la méthode), liaison dynamique, exportation de méthode. De manière générale, la mémoire Java est divisée en pile et tas, et la pile fait référence à la pile de machine virtuelle. Mais l'allocation de mémoire de Java n'est pas si simple. La liaison dynamique est expliquée comme suit : Chaque cadre de pile contient une référence à la méthode à laquelle le cadre de pile appartient dans le pool constant lors de l'exécution. Cette référence est conservée pour prendre en charge la méthode
1. JMM java Explication graphique détaillée du modèle de mémoire
Introduction : JMM est destiné à un programmeur qui souhaite comprendre Java en profondeur C'est un test incontournable. Cet article est plus théorique et le plus simple à comprendre possible. S'il y a des erreurs, j'espère que vous pourrez me corriger.
2. 【Concurrence Java morte】-----Réorganisation du modèle de mémoire Java
Introduction : Lors de l'exécution d'un programme, afin d'améliorer les performances, les processeurs et les compilateurs réorganisent souvent les instructions, mais elles ne peuvent pas être réorganisées arbitrairement, pas comme vous le souhaitez. doit remplir les deux conditions suivantes : 1. Le résultat de l'exécution du programme ne peut pas être modifié dans un environnement monothread ; 2. La réorganisation n'est pas autorisée s'il y a des dépendances de données. Si vous avez lu le blog précédent de LZ, vous le saurez dans. En fait, les deux points peuvent être résumés en un seul point : JMM permet un ordre arbitraire qui ne peut pas être dérivé du principe qui se produit avant. sémantique comme si-série comme si-se
3. 【Concurrence Java】-----Le modèle de mémoire Java se produit avant
Introduction : Dans le dernier blog ([Deadly Java Concurrency] - Analyse approfondie du principe d'implémentation de volatile) LZ l'a mentionné Il a été constaté qu'en raison de l'existence de la mémoire locale des threads et de la mémoire principale, associée à la réorganisation, il y aurait des problèmes de visibilité dans les environnements multithreads. Donc, si nous utilisons correctement la synchronisation et le verrouillage, quand le thread A modifie-t-il la variable a visible pour le thread B ? Nous ne pouvons pas stipuler dans tous les scénarios quand les variables modifiées par un thread sont visibles par les autres threads, mais nous pouvons spécifier certaines règles. À partir du JDK 5, JMM utilise ha
<.>4.Analyse approfondie du modèle de mémoire Java : résumé
Introduction : Le Le modèle de mémoire séquentiellement cohérent est un modèle de référence théorique. Les modèles de mémoire JMM et de processeur utilisent généralement le modèle de mémoire séquentiellement cohérent comme référence lors de la conception. Le modèle de mémoire JMM et de processeur apportera quelques assouplissements au modèle de cohérence séquentielle lors de la conception, car si le processeur et JMM sont implémentés entièrement conformément au modèle de cohérence séquentielle, de nombreuses optimisations du processeur et du compilateur seront interdites, ce qui nuira aux performances d'exécution. aura un grand impact.
5.
La 2e Conférence mondiale des développeurs PHP (y compris le PPT de la conférence) Développeur Headline Game Developer Wandoujia Development
Introduction : Développeur, php : La 2e Conférence mondiale des développeurs PHP (y compris le PPT de la conférence) : La Conférence mondiale des développeurs PHP s'est tenue à Pékin du 14 au 15 mai 2016. Plus de photos sur le site Veuillez cliquer sur : http://t.cn/RqeP7y9, http://t.cn/RqD8Typ Enfin, le PPT de cette conférence peut être téléchargé ici : http://pan.baidu.com/s/1pLajmm3 Si vous Si vous avez J'ai appris quelque chose en lisant cet article, merci de me donner un coup de pouce. S'il y a des erreurs dans l'article, veuillez le signaler. Apprenez les uns des autres et progressez ensemble ! Introduction : Adresse de téléchargement PPT : http://pan.baidu.com/s/1pLajmm3 7. >Oracle affiche le message d'erreur ORA Introduction : Oracle affiche le message d'erreur ORA-28001 : le mot de passe a expiré Solution : 1. Connectez-vous avec l'autorité SYSDBA 2. Affichez les informations du compte ; : sélectionnez le nom d'utilisateur, le statut du compte dans dba_users 3. Si le compte est verrouillé/expiré, il doit d'abord être déverrouillé : modifiez le déverrouillage du compte BJMMIS de l'utilisateur ; puis changez le mot de passe a 8. 🎜>Plateforme LJMM (Linux +Jexus+MySQL+mono) Un bref résumé de l'utilisation de MySQL sur MySQL Introduction : plate-forme LJMM (un bref résumé de l'utilisation de MySQL sur Linux +Jexus+MySQL+mono) [Recommandations de questions et réponses associées] : java - Pourquoi JMM exige-t-il des réglementations Les écritures ordinaires et les lectures volatiles ne peuvent pas être réorganisées ?jmm - Comment Java synchronise-t-il les données avec la mémoire principale ? java - Quels sont les avantages de connaître JVM pour la programmation ? Comment mieux comprendre JMM ? Quels points de connaissance doivent être combinés pour comprendre, et quels aspects de la pratique doivent être réalisés pour approfondir la compréhension ? java - Quand est-il nécessaire d'utiliser la programmation multi-thread ?
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!