Spring 中的单例 bean 的线程安全问题

线程安全问题是由静态变量引起的,如果只是对静态变量读取的话,没有线程安全问题,如果有写入的话,就会导致线程安全问题
bean可以分为两种,一种是有状态,一种没有状态
状态可以认为是实例变量,可以保存数据
如果没有状态,也就没有线程安全问题,使用sigleton范围,提高性能
如果有状态,使用prototype范围,防止重复读取
可以使用threadlocal保存状态,每个线程都拥有自己的threadlocal,这样就不会有线程安全问题。但是threadlocal可能会导致内存泄露,ThreadLocalMap的entry保存着key和value,threadlocal只是作为key,没有真正保存对象,因为ThreadLocalMap的entry指向threadlocal的key是弱引用,ThreadLocalMap的entry指向value是强引用

posted @   xiuer211  阅读(294)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示