您的位置:首页 > 其它

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有多个锁获取的方式,具体下面会说道,大致就是可以尝试获得锁,线程可以不用一直等待
锁状态 无法判断 可以判断
锁类型 可重入 不可中断 非公平 可重入 可判断 可公平(两者皆可)
性能 少量同步 大量同步
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: