volatile关键字的特性
1 | 1.不能保证原子性: |
特性解释
1 | 原子性: 一个操作或多个操作,要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行 |
不能保证原子性
代码展示
1 | public class VOLATILETest { |
打印展示
使变量在线程间都可见
变量在线程间不可见
代码展示
1 | public class VolatileTest extends Thread { |
打印展示
程序无法正常结束
问题原因
1 | 在主线程中修改变量是无法作用到其他线程中的 |
变量在线程间可见
代码展示
1 | public class VolatileTest extends Thread { |
打印展示
程序正常退出
ConcurrentHashMap
1 | HashMap是线程不安全的,当多个线程同时操作HashMap,可能会出现因抢占线程而出现数据问题;而ConcurrentHashMap是一个能实现并发的HashMap |
baseCount变量
用来存储ConcurrentHashMap的长度
1 | baseCount变量使用了volatile关键字修饰,作用为: |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 123!