Synchronized和Lock的区别

1、synchronized是java关键字,lock是一个java类

2、synchronized无法判断获取锁的状态,lock可以判断是否获得到锁

3、synchronized自动释放锁,lock必须要手动释放锁,否则会出现死锁状态

4、当有两个线程1、2时,线程1获得锁但是出现了阻塞,此时synchronized方式会让线程2持续等待,造成损失,lock方式不一定会一直等待,可能会使用trylock方法尝试获取锁

5、synchronized可重入、不可以中断、非公平,lock可重入、可以判断锁、可以自己设置公平还是非公平,在ReentrantLock方法中加入参数,默认是非公平

6、synchronized适合锁少量代码同步问题,lock适合锁大量代码同步问题

posted @   李哥不会扣篮  阅读(293)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示