sychronized与ReentrantLock的五大区别

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

锁绑定多个条件Condition

synchronized 关键字,JVM层面(moitorenter\monitorexit) 代码执行完后自动释放锁 不可中断 非公平锁
ReentrantLock 具体类,api层面的锁 需要用户手动释放锁,用Lock()和unlock()配合try/finally语句块来完成 可中断 两者都可,默认false即非公平锁 实现分组唤醒的线程们,可以精确唤醒,而不是像synchronized要么随机唤醒,要么全部唤醒
posted @ 2019-08-29 17:51  一棵小草77  阅读(398)  评论(0编辑  收藏  举报