Synchronized和ReentrantLock有什么不同之处呢?
转自:
http://www.java265.com/JavaMianJing/202205/16525413643372.html
同步锁:
同步锁是为了保证每个线程都能正常执行原子不可更改操作,同步监听对象/同步锁/同步监听器/互斥锁的一个标记锁.
下文笔者讲述Synchronized和ReentrantLock的不同之处,如下所示:
1.实现方式不同 Synchronized是JVM层面的关键字 ReentrantLock是API层面 2.可修改对象范围不同 Synchronized可以修饰代码块和方法 ReentrantLock只能用于代码块 3.操作方式不同 Synchronized不需要手动释放锁 ReentrantLock需要手动释放锁 4.锁方式不同 Synchronized是非公平锁 ReentrantLock 可以通过参数指定为公平或者非公平 5.中断方式不同 Synchronized等待不能中断 ReentrantLock 等待可以中断,tryLock 可以设置等待时长; 6.是否可重入 Synchronized和ReentrantLock都是可重入锁