1949啦网--小小 痛苦,是因为能力和欲望不匹配造成的

volatile关键字-----多线程

 

Java提供了volatile关键字来保证可见性。

 当一个共享变量被volatile修饰时,它会保证修改的值会立即被更新到主存,当有其他线程需要读取时,它会去内存中读取新值。

  而普通的共享变量不能保证可见性,因为普通共享变量被修改之后,什么时候被写入主存是不确定的,当其他线程去读取时,此时内存中可能还是原来的旧值,因此无法保证可见性。

  另外,通过synchronized和Lock也能够保证可见性,synchronized和Lock能保证同一时刻只有一个线程获取锁然后执行同步代码,并且在释放锁之前会将对变量的修改刷新到主存当中。因此可以保证可见性。





一定要记得,程序的运行就是在内存里面



微信扫码关注

更新实时通知

作者:xiao 分类:软件笔记 浏览: