相同点
synchronized和ReentrantLock都是Java中的可重入锁;
不同点
回答思路:缺点 + 优点;
使用方法
1.synchronized 可以用来修饰普通方法、静态方法和代码块;
2.ReentrantLock 只能用于代码块,核心用法有三个方法:
lock() //加锁
unlock() //解锁
tryLock() //尝试加锁
其中lock()和unlock()这两者之间如果有 return 或者有异常,就可能导致unlock执行不到;
所以若想防止中断可以这样去写(提供了更多可能,如下图)
ReentrantLock具有解决“死等的策略”,提供了更多可能
从ReentrantL