随笔分类 - 多线程
摘要:总结: 1、保证可见性(JMM) 2、不保证原子性 (核心难点:原子类) 3、禁止指令重排 (核心难点:说出单例模式。说出CAS。说出CPU原语) 1 // 验证volatile 可见性 2 public class JmmDemo { 3 private volatile static int n
阅读全文
摘要:1. 读写锁 1 // 独占锁(写锁):一次只能被一个线程占有 2 // 共享锁(读锁):可以被多个线程同时占有 3 // 运行结果分析:写锁保证操作的原子性,读锁不能保证操作的原子性 4 // 注意:lock锁一定要配对,不然可能会导致死锁 5 // 个人理解:写操作即为修改数据,会改变原有的数据
阅读全文
摘要:1. List不安全探究 1 // ArrayList<String> list = new ArrayList<>(); // ArrayList 源码中CRUD没加synchronized同步 2 // List<String> list = new Vector<>(); // Vector
阅读全文
摘要:1. synchronized和lock的区别: synchronized 是Java内置关键字,lock 是Java类; synchronized 无法判断是否获得锁,lock 可以; synchronized 会自动释放,lock 需要手动释放; synchronized 线程1阻塞,线程2会永
阅读全文

浙公网安备 33010602011771号