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

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

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

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

原文地址:https://www.cnblogs.com/soundcode/p/10749334.html