并发中的各种锁

1.线程是否要锁住同步资源:锁住---悲观锁;不锁住---乐观锁

2.锁住同步资源失败线程是否要阻塞:不阻塞---自旋锁/适应性自旋锁

3.synchronized关键字优化之后的几个状态流转:无锁-->偏向锁-->轻量级锁-->重量级锁

4.多个线程竞争锁时是否排队:排队--公平锁;先尝试插队(直接抢锁)插队失败再排队---非公平锁

5.一个线程的多个流程能不能获取同一把锁:能--可重入锁(拿到锁之后,再次遇到这把锁直接可以进去,不用再去抢);不能--不可重入锁

6.多个线程能否共享一把锁:能--共享锁(读锁一般就是共享的。大家都可以来读数据);不能--排他锁(写锁,肯定不能共享,修改的操作只能一个一个来完成)

原文地址:https://www.cnblogs.com/nijunyang/p/12846612.html