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适合锁大量代码同步问题
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端