官方说明:一个可重入的互斥锁定 Lock,它具有与使用 synchronized 方法和语句所访问的隐式监视器锁定相同的一些基本行为和语义,但功能更强大。
强大在哪儿?求高人解释。
官方说明:一个可重入的互斥锁定 Lock,它具有与使用 synchronized 方法和语句所访问的隐式监视器锁定相同的一些基本行为和语义,但功能更强大。
强大在哪儿?求高人解释。
回楼主,其实提到了,Synchronized只能在方法或者块上加锁,而lock可以只对某条语句进行加锁。
再回楼主,您说的没有特别指出ReentrantLock的好处,其实我列举的三点应该都比较明显了:
1、在某些场合下,确实需要获得锁的时间与申请锁的时间相一致,但是Synchronized做不到。
2、如果不支持中断处理,那么线程可能一直无限制的等待下去,就算那些正在占用资源的线程死锁了,正在等待的那些资源还是会继续等待,但是ReentrantLock可以选择放弃等待。
3、关于Condition这个强大的特性都可以另开一贴了,建议仔细查看API。