线程安全之可见性揭秘 《云课堂》
线程安全之可见性问题 JVM运行时数据区和JMM(java内存模型)有什么区别? 1. JVM运行时数据区 是 由 《==Java虚拟机规范==》定义的 理解:不同的JVM厂商都必须 遵循 《==Java虚拟机规范==》进行开发 2. JMM是由 《java语言规范》定义的 理解:每一种语言都有自己的 解释器或编译器 什么是可见性问题? 我们先来看一段程序,如下: 大家猜猜这个程序运行结果是什么样子? 好了,不卖关子啦,我这里已经运行过了,如下图: 我们可以看到,【i】的值没有打印,而且线程还没有执行结束,那是为什么呢? 那我们一起来一步一步的分析推理下,我们先把
用户评论