Synchronized和Lock的区别

  • Synchronized是内置的Java关键字,Lock是一个类
  • Synchronized无法判断获取锁的状态,Lock可以判断是否获取到了锁
  • Synchronized会自动释放锁,Lock必须要手动释放锁!如果不释放锁,会出现死锁的可能
  • Lock可以让等待锁的线程响应中断,而synchronized却不行,使用synchronized时,等待的线程会一直等待下去,不能够响应中断.
  • Synchronized 可重入锁,不可以中断的,非公平;Lock ,可重入锁,可以 判断锁,非公平(可以自己设置);
    *Synchronized 适合锁少量的代码同步问题,Lock 适合锁大量的同步代码!
posted @ 2020-12-30 16:00  刘指导  阅读(108)  评论(0编辑  收藏  举报