【多线程】synchronized与Lock的区别

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wrs120/article/details/90717059

synchronized

  1. 关键字,基于jvm
  2. 锁释放:@1:获得锁的线程执行完了该代码块 @2.线程执行出现异常,是一种被动方式释放,通过Monitor.exit()释放,Monitor更多讲解参见:https://blog.csdn.net/ignorewho/article/details/80854625
  3. 是一种可重入锁、可中断锁,
  4. 适用于并发少

Lock

  1. 接口,基于java编程
  2. 调用Lock.unlock()释放锁,是一种主动方式释放
  3. 分为:ReentrantLock读写锁,ReadWriteLock可重入锁,公平锁,可中断锁
  4. 高并发时比synchronized性能高

猜你喜欢

转载自blog.csdn.net/wrs120/article/details/90717059