Java 内存一致性属性说明
我正在查看并很难理解这意味着什么——“一个线程中的所有操作都发生在该线程上的任何其他线程从连接成功返回之前。”我能否在示例中获得一个示例,说明这意味着什么,以及在该示例中的“发生之前”保证是什么。如果您有以下代码Java 内存一致性属性说明,java,multithreading,memory,Java,Multithreading,Memory,我正在查看并很难理解这意味着什么——“一个线程中的所有操作都发生在该线程上的任何其他线程从连接成功返回之前。”我能否在示例中获得一个示例,说明这意味着什么,以及在该示例中的“发生之前”保证是什么。如果您有以下代码 public class Test { public static int i = 1; public static void main(String[] args) throws Exception { System.out.println("Start main");
public class Test {
public static int i = 1;
public static void main(String[] args) throws Exception {
System.out.println("Start main");
Thread t = new Thread(new Runnable() {
public void run() {
System.out.println("Start second");
i = 10;
}
});
t.start();
t.join();
System.out.println("After join");
System.out.println(i); //should print 10
}
}
在
run()
方法中完成的所有操作都发生在主线程从t.join()获得控制权之前代码>。这就是为什么静态变量i
在主线程中打印时将具有值10
。您在理解它时有困难吗?