前言:
目前咱们对“多线程局部变量会不会互相影响”大约比较关怀,看官们都需要分析一些“多线程局部变量会不会互相影响”的相关文章。那么小编在网摘上搜集了一些对于“多线程局部变量会不会互相影响””的相关知识,希望看官们能喜欢,看官们一起来了解一下吧!java中有三大变量:
1.实例变量:在堆中
2.静态变量:在方法区中
3.局部变量:在栈中
以上三大变量中:
局部变量永远都不会出现线程安全问题。因为局部变量不共享。(一个线程一个栈)。局部变量在栈中,所以局部变量永远不会共享。
实例变量在堆中,堆中只有一个。
静态变量在方法区中,方法区中只有一个。
堆和方法区都是多线程共享的,所以可能存在线程安全问题。
然后一个变量需要满足以下三个条件,才会出现多线程安全问题:
1、多个线程并发使用这个变量
2、这个变量被共享
3、对共享的变量有修改操作
必须满足以上三个条件,变量才会存在线程安全问题。所以以后我们在定义变量的时候,能定义成局部变量的尽量定义成局部变量,这样能减少很多的线程安全问题。
以上观点都是个人总结,如有不对的希望各部大神留言讨论。
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #多线程局部变量会不会互相影响 #java静态变量线程安全吗