理解JAVA内存模型

实际上java内存模型是如上图所示一样

每个线程有自己的栈内存,存放共享对象的副本,本地变量

 

每个线程自己的本地变量是不可见的,但是共享对象对每个线程都是可见的。

 

如果想实现线程通信的话,

线程对共享对象的修改,实际上是首先对本地副本修改,然后修改主内存,堆内存,通信线程再去修改。

如果想保证线程之间的共享对象的可见性, 可以采用volidate关键字修饰, 他强制线程每次从主存读取,修改后立刻刷新到主存

而保证防止多个线程同时修改本地变量后,主内存防止产生错误数据, synchronize关键字可以解决

 

相关文章:

  • 2021-08-25
  • 2022-12-23
  • 2021-05-27
  • 2021-08-28
  • 2021-12-30
  • 2021-10-30
  • 2021-09-23
猜你喜欢
  • 2021-12-01
  • 2022-12-23
  • 2021-06-08
  • 2021-09-15
  • 2021-09-28
  • 2021-10-11
  • 2022-12-23
相关资源
相似解决方案