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