线程之volatile

1.谈谈你对volatile的理解

    volatile是java虚拟机提供的轻量级的同步机制

    1.保证可见性

      可见性:

        线程修改数据的过程:各个线程能够看到主内存的值,更新数据时,需要从主内存中拷贝到线程的工作空间,然后写回到主物理

                               内存。整个过程保证其他线程都能收到数据变动通知。

    2.不保证原子性

    3.禁止指令重排

2.你谈谈JMM

  Java内存模型,不真实存在,是需要遵守的规范,可见性,原子性,有序性

jmm关于同步的规定:

  1.线程解锁前,必须把共享变量的值刷回到主内存

  2.线程加锁前,必须读取主内存的最新值到工作内存中

  3.加锁解锁是同一把锁

 

posted @ 2020-07-04 22:05  西以北偏北  阅读(128)  评论(0)    收藏  举报