色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

jmm和java運行時數據區

楊一鳴1年前5瀏覽0評論

JMM(Java Memory Model) 是 Java 平臺的內存模型,它規定了多線程訪問共享數據時的行為,并確保了在不同的 JVM 上的行為一致。

public class JmmExample {
private static int num = 0;
private static boolean flag = false;
public static void main(String[] args) {
new Thread(() -> {
while (!flag) {
Thread.yield();
}
System.out.println(num);
}).start();
num = 1;
flag = true;
}
}

在上述代碼中,由于 num 和 flag 沒有加同步鎖,所以在多線程的情況下可能出現問題。如果 JVM 使用的是弱內存模型,那么輸出的結果可能是 0,在強內存模型下結果一定是 1。

Java 運行時數據區包括線程私有區和線程共享區。線程私有區包括程序計數器、Java 虛擬機棧和本地方法棧;線程共享區包括堆、方法區。

public class RuntimeDataAreaExample {
private static String name = "Alice";
public static void main(String[] args) {
String address = "Beijing";
int age = 18;
System.out.println(getInfo());
}
private static String getInfo() {
return "Name: " + name + ", Address: " + address + ", Age: " + age;
}
}

在上述代碼中,name 是一個靜態變量,被所有線程共享,存儲在方法區;address 和 age 是在 main 方法中定義的局部變量,存儲在 Java 虛擬機棧中,只有當前線程可以訪問。