在java多线程的教程中,给出了一个Memory Consistency Errors的例子。但我无法重现它。还有其他方法可以模拟内存一致性错误吗?
教程中提供的示例:
假设定义并初始化了一个简单的 int 字段:
int counter = 0;计数器字段在两个线程 A 和 B 之间共享。假设线程 A 递增计数器:
counter++;然后,不久之后,线程 B 打印出计数器:
System.out.println(counter);如果这两个语句在同一个线程中执行,则可以安全地假设打印出的值是“1”。但是,如果这两个语句在不同的线程中执行,则打印出的值很可能是“0”,因为不能保证线程 A 对计数器的更改对线程 B 可见——除非程序员在两者之间建立了 happens-before 关系这两个声明。
慕村225694
牧羊人nacy
慕码人2483693
跃然一笑
qq_笑_17
相关分类