synchronized与Lock的区别与使用
2018-08-17 16:04
369 查看
序言
最近在看单例模式的时候牵扯到了同步,锁等概念,因此在网上查阅了两者的区别等等,在此,记录下博文以便于日后复习。参考博文:传送带
synchronized与Lock的区别
类别 | synchronized | Lock |
存在层次 | Java的关键字,在jvm层面上 | Lock是基于jdk层面实现的接口 |
锁的释放 | 1、以获取锁的线程执行完同步代码,释放锁 2、线程执行发生异常,jvm会让线程释放锁 | 在finally中必须释放锁,不然容易造成线程死锁 |
锁的获取 | 假设A线程获得锁,B线程等待。如果A线程阻塞,B线程会一直等待 | 分情况而定,Lock有多个锁获取的方式,具体下面会说道,大致就是可以尝试获得锁,线程可以不用一直等待 |
锁状态 | 无法判断 | 可以判断 |
锁类型 | 可重入 不可中断 非公平 | 可重入 可判断 可公平(两者皆可) |
性能 | 少量同步 | 大量同步 |
相关文章推荐
- 详解synchronized与Lock的区别与使用
- synchronized和lock的区别和使用
- Java中Synchronized和Lock的使用和区别
- 详解synchronized与Lock的区别与使用
- Lock和synchronized的区别和使用
- 详解synchronized与Lock的区别与使用
- Lock和synchronized的区别和使用
- volatile、synchronized、lock有什么区别,以及在哪些场景下使用哪种方式?
- Lock和synchronized的区别和使用
- volatile、synchronized、lock有什么区别,以及在哪些场景下使用哪种方式?
- 详解synchronized与Lock的区别与使用
- Lock和synchronized的区别和使用
- 详述synchronized与Lock的区别与使用
- Lock和synchronized的区别和使用
- 详解synchronized与Lock的区别与使用
- 详解synchronized与Lock的区别与使用
- Synchronized如何使用?跟Lock的区别?
- Java中Synchronized和Lock的使用和区别
- Lock和synchronized的区别和使用
- 详解synchronized与Lock的区别与使用