答:
大部分时候我们并没有在系统中使用多线程,所以很少有人会关注这个问题。
单例bean存在线程问题,主要是因为当多个线程操作同一个对象的时候,对这个对象的非静态成员变量的写操作会存在线程安全问题。
常见的有两种解决办法:
1、在Bean对象中尽量避免定义可变的成员变量(不太现实)。
2、在类中定义一个ThreadLocal成员变量,将需要的可变成员变量保存在ThreadLocal中(推荐的一种方式)。
答:
大部分时候我们并没有在系统中使用多线程,所以很少有人会关注这个问题。
单例bean存在线程问题,主要是因为当多个线程操作同一个对象的时候,对这个对象的非静态成员变量的写操作会存在线程安全问题。
常见的有两种解决办法:
1、在Bean对象中尽量避免定义可变的成员变量(不太现实)。
2、在类中定义一个ThreadLocal成员变量,将需要的可变成员变量保存在ThreadLocal中(推荐的一种方式)。
我们在日常的开发过程中经常会遇到资源的共享的情况,如果每一个请求进来我们对单独的
package dp;public class ThreadSingle { private static ThreadSing
三、使用ThreadLocal成员变量。一、避免使用类成员变量。
单例模式及其线程安全问题
不,Spring框架中的单例bean不是线程安全的。
举报文章
请选择举报类型
补充说明
0/200
上传截图
格式支持JPEG/PNG/JPG,图片不超过1.9M