Lock和sychronized

二者都是可重入锁

1.synchronized的缺点

  1)当一个代码被synchronized修饰的时候,一个线程获取到了锁,那么其它线程需要等待这个锁的释放。锁释放只有两种,要么代码执行完毕自动释放,要么发生异常后JVM会让线程释放锁

  2)读和写冲突,写和写冲突,读和读操作不会冲突,但是使用synchronized的话,一个线程读,另一个线程也只能等待。

  3)使用该关键字时,无法知道线程是否成功获取到锁

2.使用ReadWriteLock可以提高多个线程进行读操作的效率。

原文地址:https://www.cnblogs.com/sstone/p/8567748.html