在多个线程交替执行的情况下,为了保证数据的独立性,我们可以使用局部变量,但是在进行不同方法或者不同类的调用时,局部变量未必好使,这时候就需要提升变量的作用范围,但问题也会随之而来。
例:
/*如下代码:
主线程创建两个线程;
每个线程获得一个随机数并赋值给全局变量data;
并通过内部类A,B的get方法输出;*/
public class Test {
private static int data=0;
public static void main(String[] args) {
for (int i = 1; i <= 2; i++) {
new Thread(new Runnable() {
public void run() {
int a=new Random().nextInt();
System.out.println(a);
data = a;
System.out.println(Thread.currentThread().getName