摘要:
一个简单的java内存模型图: 从图中可以看出,当是多核cpu时,每个cpu都有一个独立的高速缓存,多个线程会在多个cpu中独立执行当对一个变量只是读操作的时候,jvm自作多情的做了一个优化,只是访问缓存的数据,只有进行写操作的时候,会刷新主内存的数据执行如下操作:i=1;i=i+1;cpu1:ma 阅读全文
摘要:
闲话少叙,上代码 测试结果,出现两种情况: 1.INIT_VALUE被volatile关键字修饰时,READER线程是可以感知到UPDATER的变化 2.INIT_VALUE缺少volatile关键字修饰时,READER线程感知不到UPDATER的变化 volatile可以保证内存可见性,有序性,不 阅读全文