Syncronized锁升级

1.偏向锁:当没有资源竞争的时候是拿将线程的id拿到加锁对象的内部存着,当后面的线程运行来时来看看当前线程id和解锁对象中的线程id是否一致

2.轻量级锁:当有轻微的资源竞争的情况,就会采用CAS比较并交换的方式,因为自旋锁线程太多的时候会很耗费cpu(因为线程没有拿到锁会一直在while循环尝试着获取到锁)。

3.重量级锁:线程太多的情况中,就会采用重量级锁,把线程放入到缓存队列中存储起来,当轮到这个线程执行时就将这个线程唤醒,此时其它的线程依旧处于等待的状态。

posted @ 2021-03-02 21:44  动力起点  阅读(97)  评论(0编辑  收藏  举报