二者都是可重入锁
1.synchronized的缺点
1)当一个代码被synchronized修饰的时候,一个线程获取到了锁,那么其它线程需要等待这个锁的释放。锁释放只有两种,要么代码执行完毕自动释放,要么发生异常后JVM会让线程释放锁
2)读和写冲突,写和写冲突,读和读操作不会冲突,但是使用synchronized的话,一个线程读,另一个线程也只能等待。
3)使用该关键字时,无法知道线程是否成功获取到锁
2.使用ReadWriteLock可以提高多个线程进行读操作的效率。
二者都是可重入锁
1.synchronized的缺点
1)当一个代码被synchronized修饰的时候,一个线程获取到了锁,那么其它线程需要等待这个锁的释放。锁释放只有两种,要么代码执行完毕自动释放,要么发生异常后JVM会让线程释放锁
2)读和写冲突,写和写冲突,读和读操作不会冲突,但是使用synchronized的话,一个线程读,另一个线程也只能等待。
3)使用该关键字时,无法知道线程是否成功获取到锁
2.使用ReadWriteLock可以提高多个线程进行读操作的效率。