总体上,Synchronized能实现的加锁功能,ReentrantLock都能实现。
Synchronized使用起来比较简便,而且编程时不会忘记解锁功能。
一般情况下,建议使用Synchronized加锁,而使用ReentrantLock时则是为了应用ReentrantLock的独有的特性,如下所示:
1、可指定是公平锁还是非公平锁
2、提供了一个Condition类,可以分组唤醒需要唤醒的线程
3、提供能够中断等待锁的线程的机制,lock.lockInterruptibly()
总体上,Synchronized能实现的加锁功能,ReentrantLock都能实现。
Synchronized使用起来比较简便,而且编程时不会忘记解锁功能。
一般情况下,建议使用Synchronized加锁,而使用ReentrantLock时则是为了应用ReentrantLock的独有的特性,如下所示:
1、可指定是公平锁还是非公平锁
2、提供了一个Condition类,可以分组唤醒需要唤醒的线程
3、提供能够中断等待锁的线程的机制,lock.lockInterruptibly()
本文标题:ReentrantLock 与Synchronized 区别
本文链接:https://www.haomeiwen.com/subject/rkokzctx.html
网友评论