zoukankan      html  css  js  c++  java
  • JMM面试总结

    1 为什么需要JMM

      屏蔽各种硬件和操作系统的内存访问差异

    2 到底什么是JAVA内存模型

      1 定义程序中各种变量的访问规则

      2 把变量存储到内存的底层细节

      3 从内存中取出变量值的底层细节

    3 JAVA内存模型的两大内存是什么

      主内存 对应于物理硬件的内存

      工作内存 优先存储在寄存器和高速缓存,也可能存在物理内存

    4 JAVA 内存模型的三大特征

      可见性

      原子性

      有序性

      注意,这里跟volitale的不能实现原子性混淆。java内存模型是支持原子性的,只是volatile做不到原子性

    5 MESI的内容

      当CPU写数据时,如果发现操作的变量是共享变量,即其他cpu中也存在该变量的副本,系统会发出信号通知其他cpu将该内存变量的缓存行置为无效。

      当其他CPU读取这个变量的时候,发现自己缓存该变量的缓存行是无效的,那么它就会从内存中重新读取。

      如果做到的呢?

      总线嗅探,每个cpu不断嗅探总线上传播的数据来检查自己缓存值是否过期了,如果处理器发现自己的缓存行对应的内存地址被修改,就会将当前处理器的缓存行置为无效状态,当处理器对这个数据进行修改操作的时候,会重新从内存中把数据读取到处理器缓存中。

      

  • 相关阅读:
    Action常见注解的运用
    发现越来越喜欢来博客园了,所以自己也注册了一个!
    jsf 繁体教程下载pdf
    poj3210
    poj3224
    poj3219
    poj3233
    poj3372
    Paper Pal:一个中英文论文及其代码大数据搜索平台
    年轻就该多尝试,教你20小时Get一项新技能
  • 原文地址:https://www.cnblogs.com/juniorMa/p/15448703.html
Copyright © 2011-2022 走看看