modelos de memoria de la CPU y los modelos de memoria para explicar JAVA

modelo de memoria de la CPU

Antes de explicar el modelo de memoria de Java, modelo de memoria para comprender la CPU, el modelo de memoria porque Java es diciendo que es muy similar.

modelo de memoria de la CPU
Core es la figura de una CPU. Se puede ver:

  1. L1 y L2 son cada CPU propia caché
  2. caché L3 es compartido entre una pluralidad de CPU.
  3. El amarillo es la memoria principal.
  4. L1, L2, L3, almacena la velocidad, disminuye y almacenar cosas gradualmente.
  5. L1 y L2 caché tasa de éxito es del 80 por ciento para
  6. L3 contabilidad alcances de datos alrededor del 4% caché.

modelo de memoria de Java

Aquí Insertar imagen Descripción
Esto se puede ver con la memoria de la CPU es muy similar. Memoria correspondiente a la parte de color amarillo de la memoria caché L3 de la CPU. Pero también se puede ver ah, copia de la memoria se copia en. Es a causa de la existencia de esta cosa, conduce a problemas de visibilidad variable.

problemas de visibilidad

class XXX {
	private static int a = 0;
	Thread threadA = new Thread(() -> {
            System.out.println(Thread.currentThread().getName() + " a = " + a);
            a = 1;
            System.out.println(Thread.currentThread().getName() + " a = " + a);
        }, "ThreadA");


        Thread threadB = new Thread(() -> {
            System.out.println(Thread.currentThread().getName() + " a = " + a);
            a = 1;
            System.out.println(Thread.currentThread().getName() + " a = " + a);
        }, "ThreadB");
}
复制代码

Cuando los nuevos múltiples hilos para modificar una variable, surgen problemas de visibilidad. Es decir: Hilo-A: a -> 1. Sin embargo, hilo-B no es necesariamente un uno para leer, o puede ser 0;

problema del reordenamiento

explicación sencilla:

Java durante la ejecución del programa, las instrucciones pueden ser reajustados. Una secuencia de código es:

b = 1;
x = a;
复制代码

Pero puede convertirse en la aplicación de:

x = a;
b = 1;
复制代码

El código fuente en bienes en general, lleva a cabo después: fuente -> Compilador desalentó ordenadas -> reordenamiento procesador -> el orden final de ejecución

Pero bueno! ! ! Reordenamiento no es incondicionalmente a la reordenación. Se debe seguir un suceda antes regla.

suceder antes de reglas:

Aquí Insertar imagen Descripción

Supongo que te gusta

Origin juejin.im/post/5e84c15851882573bb78e9fa
Recomendado
Clasificación