
网站救助计划
1.为阅读体验,本站无任何广告,也无任何盈利方法,站长一直在用爱发电,现濒临倒闭,希望有能力的同学能帮忙分担服务器成本
2.捐助10元及以上同学,可添加站长微信lurenzhang888,备注捐助,网站倒闭后可联系站长领取本站pdf内容
3.若网站能存活下来,后续将会持续更新内容
Spring中的单例bean不是线程安全的,不过如果没有涉及到多线程也不需要考虑这个问题。
单例bean全局只有一个bean,是线程共享的。简单来说就是如果这个bean是有状态的,会对bean的成员变量进行写操作,那就是线程不安全的。如果bean是无状态的,对bean的成员变量进行读操作,那就是线程安全的。这里的有状态一般是指具备数据存储功能,无状态一般不具备数据存储功能,比如查询等。
那如何解决单例bean的线程安全问题呢?
- 在Bean对象中尽量不定义可边的成员变量
- 将Bean定义成多例的,每次请请求都创建一个新的bean
大家可能也都看出来了这两种办法不太靠谱,比较推荐的是将Bean中的成员变量保存在ThreadLocal中,因为ThreadLocal本身就具备线程间数据隔离的作用。
本站链接:https://www.mianshi.online,如需勘误或投稿,请联系微信:lurenzhang888
点击面试手册,获取本站面试手册PDF完整版