网站建设论坛社区,浙江致居软装设计有限公司,谷歌网站关键词优化,上海网站建设公司站霸网络JMM JAVA Memory Model java内存模型
作用#xff1a;缓存一致性协议#xff0c;用于定义数据读写的规则#xff08;遵守#xff0c;找到这个规则#xff09; JMM定义了线程2工作内存和主内存之间的抽象关系#xff1a;线程之间的共享变量存储在主内存#xff08;main …JMM JAVA Memory Model java内存模型
作用缓存一致性协议用于定义数据读写的规则遵守找到这个规则 JMM定义了线程2工作内存和主内存之间的抽象关系线程之间的共享变量存储在主内存main Memory 中每一个线程都有一个私有的本地内存Local Memory 解决共享对象可见性这个问题volilate voliate关键字的作用: 一、内存可见性 基于缓存一致性协议当用voliate关键字修饰的变量改动时cpu会通知其他线程缓存已被修改需要更新缓存。这样每个线程都能获取到最新的变量值。 二、基于内存屏障的防止指令重排 用voliate修饰的变量可以防止cpu指令重排序。底层的实现方式是基于4种内存屏障读读、读写、写读、读读屏障。