sychronized是在jvm层面上实现的,可以通过一些监控工具监控sychronized的锁定,而且在代码执行出现异常时,jvm会自动释放锁,但是使用Lock就不行,lock是通过代码实现的,最终需要在finally中释放. ReentranLock同样拥有synchronized相同的并发性和内存语义,不过它还多了锁投票.定时锁和中断锁,比如说对于中断锁,当一个线程等待了足够长的时间还没有等待到资源的话,就中断等待,去干别的事情:ReentranLock还可以使锁更加公平. 在资源竞争不是…