Synchronized和Lock区别

类别 synchronized LOCK
存在层次 Java的关键字,在jvm层面上 是一个类
锁的释放 ①获取锁的线程执行完同步代码,释放锁;②线程执行发生异常,jvm会让线程释放锁 在finally中必须释放锁,不然容易造成死锁
锁的获取 假设A线程获取锁,B线程等待。如果A线程阻塞,B线程会一直等待 分情况而定,LOCK有多个获取锁的方式,大致就是尝试获得锁,线程可以不用一直等待
锁的状态 无法判断 可以判断
锁类型 可重入 不可中断 非公平 可重入 可中断 可公平(两者皆可)
性能 少量同步 大量同步
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章