多线程访问全局变量和局部变量

Posted it蛰伏者

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多线程访问全局变量和局部变量相关的知识,希望对你有一定的参考价值。

如果一个变量是成员变量,那么多个线程对同一个对象的成员变量进行操作时,它们对该成员变量是彼此影响的,也就是说一个线程对成员变量的改变会影响到另一个线程。

如果一个变量是局部变量,那么每个线程都会有一个该局部变量的拷贝(即便是同一个对象中的方法的局部变量,也会对每一个线程有一个拷贝),一个线程对该局部变量的改变不会影响到其他线程。

这是因为成员变量和局部变量的生命周期不同,成员变量会在引用本类的对象时创建,随着对象的销毁而销毁,所以多个线程并发访问会彼此影响。而局部变量则是在访问方法时创建,在结束方法时销毁,所以在多线程并发访问方法时,每个线程多会创建各自的局部变量,因而不会有影响。

以上是关于多线程访问全局变量和局部变量的主要内容,如果未能解决你的问题,请参考以下文章

使用线程局部存储将具有全局变量的单线程遗留代码转换为多线程代码

java 局部静态变量在多线程环境下是不是有线程安全问题??

多线程访问成员变量与局部变量

python线程中的全局变量与局部变量

全局变量和局部变量的区别

jmeter的全局变量和局部变量