java实现变量的可见性

可见性就是当一个线程修改了共享变量的值,其他线程能够立即得知这个修改。java内存模型在变量修改后将新的变量值同步回主内存,在其他线程读取该变量之前从主内存刷新变量值来实现可见性。

主要实现可见性的方式有三种:

  1. volatile,注意一点 volatile不能保证操作的原子性。
  2. synchronized,在对一个变量进行unlock操作之前,必须把变量值同步回主内存。
  3. final,被final关键字修饰的变量在构造器中一旦初始化完成,并且没有发生 this 逃逸(其他线程通过this引用访问到初始化了一半的对象),那么其他线程就能看见final字段的值。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章