目录
1、乐观锁和悲观锁的概念
2、synchronized底层的原理
3. CAS的原理
4. 并发包下Lock锁和synchronized对比
5. 锁升级原理
大家好,我是四九城最豪横的小耳朵。
今天咱们来用大白话聊聊synchronized、CAS底层原理、Lock锁和锁升级原理。
1、乐观锁和悲观锁的概念
比如线程A对某个变量进行修改,在这个修改期间,它持悲观心理,认为其他线程在这个期间,也有可能去修改这个变量,所以它就给变量加个锁,保证在它修改期间,别的线程没法去访问这个变量。这个锁就是悲观锁。悲观锁是重量级锁,代表对象synchronized关键字。
比如线程A对某个变量进行修改,在这个修改期间,它持乐观心理,认为其他线程在这个期间,不会去修改这个变量,所以它只在执行修改操作的时候,才会给变量加个锁。这个锁就是乐观锁。乐观锁是轻量级锁,代表对象CAS。
2、synchronized底层的原理
首先需要知道一个概念——monitor。
每个对象内部都有一个monitor,monitor里