其实最初对于单例的线程安全问题一直一知半解,在我们大多使用spring的项目来说,spring管理bean默认是单例的,那么我们的业务逻辑也会是单例的也就是service是单例的,那么这是service是否是安全的呢?

我原来有听过无状态的bean是线程安全的,有状态的就是该bean是有其他变量的,静态的非静态的,当方法使用到了这些变量时如果是非final的就会产生线程安全问题,这是我们都很容易理解的,那么无状态的bean为什么就是线程安全的呢?我一直对此不甚理解。

其实可以这样理解,每一个线程都是执行一个线程的方法副本,然后得到方法返回数据,但是如果是有变量的情况下执行方法时计算就会出现错误。

在无状态下的方法可以被任意调用而不会产生错误,所以大多数情况下 spring管理的bean都是线程安全的,如果bean为有状态的那么就要考虑关掉singleton了。

单例带来的线程安全问题相关推荐

  1. 面试官:Spring创建好的单例对象存在线程安全问题吗?

    点击关注公众号,实用技术文章及时了解 来源:blog.csdn.net/jdk_wangtaida/ article/details/88738228 前言 这是我在一次面试中被问到过的问题,但是当时 ...

  2. Spring 框架中的单例Beans 是线程安全的么?

    Spring 框架并没有对单例bean 进行任何多线程的封装处理.关于单例bean 的线程安全和并发问题需要开发者自行去搞定.但实际上,大部分的Spring bean 并没有可变的状态(比如Servi ...

  3. Spring框架中的单例Bean是线程安全的吗?

    首先直接给出答案:不是线程安全的 一.分析问题 证明不是线程安全的案例如下: public class Student {private String stuName;public String re ...

  4. spring框架中的单例Beans是线程安全的么?

    看到这样一个问题:spring框架中的单例Beans是线程安全的么? Spring框架并没有对单例bean进行任何多线程的封装处理.关于单例bean的线程安全和并发问题需要开发者自行去搞定.但实际上, ...

  5. Spring框架中的单例Beans是线程安全的么

    看到这样一个问题:Spring框架中的单例Beans是线程安全的么? Spring框架并没有对单例bean进行任何多线程的封装处理.关于单例bean的线程安全和并发问题需要开发者自行去搞定.但实际上, ...

  6. 单例设计模式-ThreadLocal线程单例

    package com.learn.design.pattern.creational.singleton;/*** 是基于ThreadLocal的* 所以必不可少要使用这个类* * 我们看一下这个类 ...

  7. Spring框架中的单例Bean是线程安全的么?

    答: 不是安全的. Spring中的Bean默认是单例模式的,框架并没有对bean进行多线程的封装处理. 注:单例bean是指IOC容器中就只有这么一个bean,是全局共享的,有多少个线程来访问用的都 ...

  8. 单例设计模式-懒汉式(线程安全)

    懒汉式(线程安全) 有缺点说明 解决了线程不安全问题 效率太低了,每个线程在想获得类的实例时候,执行getInstance()方法都要进行同步.而其实这个方法只执行了一次实例化代码就够了,后面的想获取 ...

  9. 单例设计模式-懒汉式(线程不安全)

    懒汉式(线程不安全) 优缺点说明 起到了Lazy Loading的效果,但是只能在单线程下使用 如果在多线程下, 一个线程进入if(singleton == null)判断 语句块,还未来得及往下执行 ...

最新文章

  1. 处理点云数据 点云与生成前视图
  2. Ajax请求中的async:false/true的作用
  3. php 7 pcntl扩展,PHP_Linux系统中为php添加pcntl扩展,pcntl扩展可以支持php的多线程 - phpStudy...
  4. Matlab:成功解决引用了已清除的变量 handles
  5. 操作系统/etc/hosts文件配置
  6. 1081. Rational Sum (20) -最大公约数
  7. 图 矩阵 两点间有m的路径 矩阵乘法_代数图论I: 基本理论和无向图的同调
  8. 国内开源镜像站点汇总
  9. 一篇文章教你用 java爬虫 下载全站视频
  10. 大华摄像机初始化工具ConfigTool
  11. 查看计算机win多少位的,主编教您怎么看电脑是32位还是64位
  12. pp模块常用表 sap_SAP 常用表 MM PP SD FICO PM PS QM WM 等
  13. jfif格式怎么改成jpg或png格式?
  14. phpoffice/phpword 表格合并和表格绝对居中
  15. C语言课程设计——宾馆管理系统
  16. 温习Android基础知识——《第一行代码(第三版)》读书笔记 Chapter 2 Kotlin语法
  17. 【Benewake(北醒) 】短距 TFmini Plus 12m介绍以及资料整理
  18. Less is more——如何修复setup violation?
  19. 3.0时代:激光投影让娱乐更真实
  20. tablepc是什么平板电脑_平板电脑是什么

热门文章

  1. python os.path.exists()(用于判断文件夹路径是否存在)
  2. tensorflow1.11.0 tf.constant()函数(创建一个常数张量)
  3. Python 自定义函数和参数类型
  4. JAVA基础学习日记-----持续更新
  5. 梯度下降法进行线性回归---------二维及多维
  6. python 语言, 详解fromstring 函数 -------------从字符串到Ascii 码的转换
  7. SpringBoot @Cacheable缓存注解的使用
  8. 系统下装软件_电力二次设备自动测试系统
  9. 吐血整理:Java线程池源码分析(基于JDK1.8建议收藏)
  10. junit 测试遇上java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing 错误