若每个线程中对静态变量(类变量)、实例变量(对象变量)只有读操作,而无写操作,一般来说,这个全局变量是线程安全的;若有多个线程同时执行写操作,一般都需要考虑线程同步,否则就可能影响线程安全。
1) 常量始终是线程安全的,因为只存在读操作。
2)局部变量是线程安全的。因为每执行一个方法,都会在独立的空间(栈帧)创建局部变量,它不是共享的资源。局部变量包括方法的参数变量和方法内变量。
3)每次调用方法前都新建一个实例是线程安全的,因为不会访问共享的资源。(多例)
4)成员变量(实例变量和类变量)会受到多线程影响
5)对于成员变量的操作,可以使用ThreadLocal来保证线程安全
另外类变量是所有对象共有,其中一个对象将它值改变,其他对象得到的就是改变后的结果;而对象变量则属对象私有,某一个对象将其值改变,不影响其他对象。
springboot中controller单例模式多线程安全的简单理解
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
分布式系统各个节点状态如何同步?浅谈一下
毛发旺盛的程序员
2020-07-08 12:27:30
阿里年薪破百架构师推荐:鸟哥的Linux私房菜,搭配面试题,真香
毛发旺盛的程序员
2020-07-08 12:27:30
ZooKeeper 一致性协议 ZAB 原理,了解一下
毛发旺盛的程序员
2020-07-08 12:27:20
Spring中Transactional 失效的解决方案,让我们一起探讨一下
毛发旺盛的程序员
2020-07-08 12:27:20
太狠了,Spring全家桶笔记,一站式通关全攻略,已入职某厂涨薪18K
毛发旺盛的程序员
2020-07-08 12:27:20
面试准备季——MyBatis 面试专题(含答案)
毛发旺盛的程序员
2020-07-08 12:27:20
【JAVA】 try catch finally 中包含return的几种情况,及返回结果
never疯
2020-07-08 12:23:53
剑指Offer_编程题_二叉搜索树的后序遍历序列
浮煌
2020-07-08 11:43:28
剑指Offer_编程题_树的子结构
浮煌
2020-07-08 11:43:28
java的二分查找源码分析
Cison chen
2020-07-08 11:07:50
android程序退出方案
shangmin1990
2020-07-08 11:03:08
啥时候用interface,啥时候用abstract类? 就一句话
_躬行_
2020-07-08 10:35:56
#idea#一个Java工程频繁被idea修改jdk版本问题
码农丁丁
2020-07-08 10:28:41
Head First Servlet/JSP 学习笔记(1)
fan_7
2020-07-08 09:39:41