Synchronized与Lock的对比

  • Lock是显示锁(手动开启和关闭锁,别忘记关闭锁) synchronized是隐式锁,出了作用域自动释放
  • Lock只有代码块锁,synchronized锁有代码锁和方法锁
  • 使用Lock锁,jvm将花费更少的时间来调度线程,性能更好。并且具有更好的扩展性(有很多的子类)
  • Synchronized 内置java关键字,Lock是一个java接口
  • Synchronized 可重入锁,不可以中断,非公平锁;Lock,可重入锁,默认非公平锁(可以设置)
  • Synchronized 如果线程1获得锁,并且阻塞,线程2就会傻傻的等待;Lock锁就不一定会等待下去
posted @ 2022-04-30 16:40  小罗要有出息  阅读(39)  评论(0编辑  收藏  举报