您的位置:首页 > 编程语言 > Java开发

Spring管理的Bean对象默认是单例模式,怎么解决线程安全问题

2018-03-24 00:59 429 查看

一、在什么情况下,单例的Bean对象存在线程安全问题

当Bean对象对应的类存在可变的成员变量并且其中存在改变这个变量的线程时,多线程操作该Bean对象时会出现线程安全。

二、原因

当多线程中存在线程改变了bean对象的可变成员变量时,其他线程无法访问该bean对象的初始状态,从而造成数据错乱

三、解决办法

1.在Bean对象中尽量避免定义可变的成员变量;
2.在bean对象中定义一个ThreadLocal成员变量,将需要的可变成员变量保存在ThreadLocal中
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息