sychronized与ReentrantLock的五大区别

类型 原始构成 使用方法 等待是否可中断 加锁是否公平

锁绑定多个条件Condition

synchronized 关键字,JVM层面(moitorentermonitorexit) 代码执行完后自动释放锁 不可中断 非公平锁
ReentrantLock 具体类,api层面的锁 需要用户手动释放锁,用Lock()和unlock()配合try/finally语句块来完成 可中断 两者都可,默认false即非公平锁 实现分组唤醒的线程们,可以精确唤醒,而不是像synchronized要么随机唤醒,要么全部唤醒
原文地址:https://www.cnblogs.com/ice-line/p/11431162.html