面试题——java内存模型篇JMM(并发)

多核并发

面试题——java内存模型篇JMM(并发)

面试题——java内存模型篇JMM(并发)

面试题——java内存模型篇JMM(并发)

  • volatile关键词
    面试题——java内存模型篇JMM(并发)
    面试题——java内存模型篇JMM(并发)
  • 总线:cpu 和主内存之间的一条线,用来传输数据的
  • MESI 缓存一致性协议 ,会监听总线(cpu总线嗅探机制),当工作内存的共享变量的副本会写到主内存的时候,会监听到,触发其他的工作内存的变量副本失效,从主内存中重新读取变量值

面试题——java内存模型篇JMM(并发)

  • 在数据回写到主内存的时候,需要store 和write 两步操作,在store之前进行了lock 操作,当write 之后在unlock,保证了,其他线程在该变量失效之后能够获取到最新的数据。
  • volatile 不能保证原子性,下面代码的运行结果小于等于10000,volatile它是有很多原子操作实现的,并发情况下,有些操作会失效,导致操作丢失
    面试题——java内存模型篇JMM(并发)
  • 并发编程的三大特效:可见性(volatile),有序性,原子性