类别 | synchronized | LOCK |
---|---|---|
存在层次 | Java的关键字,在jvm层面上 | 是一个类 |
锁的释放 | ①获取锁的线程执行完同步代码,释放锁;②线程执行发生异常,jvm会让线程释放锁 | 在finally中必须释放锁,不然容易造成死锁 |
锁的获取 | 假设A线程获取锁,B线程等待。如果A线程阻塞,B线程会一直等待 | 分情况而定,LOCK有多个获取锁的方式,大致就是尝试获得锁,线程可以不用一直等待 |
锁的状态 | 无法判断 | 可以判断 |
锁类型 | 可重入 不可中断 非公平 | 可重入 可中断 可公平(两者皆可) |
性能 | 少量同步 | 大量同步 |
Synchronized和Lock区别
最新推荐文章于 2025-03-29 22:58:59 发布