sychronized与ReentrantLock的五大区别

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

锁绑定多个条件Conditionapi

synchronized 关键字,JVM层面(moitorenter\monitorexit) 代码执行完后自动释放锁 不可中断 非公平锁
ReentrantLock 具体类,api层面的锁 须要用户手动释放锁,用Lock()和unlock()配合try/finally语句块来完成 可中断 二者均可,默认false即非公平锁 实现分组唤醒的线程们,能够精确唤醒,而不是像synchronized要么随机唤醒,要么所有唤醒
相关文章
相关标签/搜索