synchronized和Reentrantlock的区别

Posted rhodesis

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了synchronized和Reentrantlock的区别相关的知识,希望对你有一定的参考价值。

1、Synchronized是jvm层面的锁是由jvm实现的而ReentrantLock是Api层面的锁它需要lock()和unlock()方法来获得锁和释放锁。

2、ReentrantLock获取锁可等待中断、可作为公平锁和非公平锁而Synchronized只能阻塞的等待获取锁、只能为非公平锁。

3、ReentrantLock可以通过Condition方法绑定多个条件然后根据条件的不同分批唤醒,Synchronized只能唤醒随机一个线程或全部唤醒。

以上是关于synchronized和Reentrantlock的区别的主要内容,如果未能解决你的问题,请参考以下文章

Java中的Lock接口

ReentrantLock (重入锁) 源码浅析

ThreadLocal使用和原理简析

一线互联网常见的14个Java面试题,你颤抖了吗程序员?

Java并发编程15ReentrantLock实现原理深入探究

《Java并发编程的艺术》读后笔记-第五章 Java中的锁