jdk锁相关

锁类型

  • 可重入锁:在执行对象中所有同步方法不用再次获得锁

  • 可中断锁:在等待获取锁过程中可中断

  • 公平锁: 按等待获取锁的线程的等待时间进行获取,等待时间长的具有优先获取锁权利

  • 读写锁:对资源读取和写入的时候拆分为2部分处理,读的时候可以多线程一起读,写的时候必须同步地写

synchronized

  JVM内置支持。

  仅支持可重入锁类型。

  异常时,锁自动释放。

lock

  支持四种锁类型。

  需要手动释放锁。

  原理:

锁优化:

  1、自旋锁:CAS

  2、偏向锁:消除数据在无竞争情况下的同步原语。如果确定没有别的线程来争抢,那么就去掉同步语句。

原文地址:https://www.cnblogs.com/chen--biao/p/10000149.html