在并发请求静态方法时,局部变量是线程安全的,因为每个线程都有自己的栈空间,局部变量存储在线程的栈帧中,不会被其他线程共享。
以下是一个示例代码,演示了在并发请求静态方法时,局部变量的线程安全性:
public class Example {
public static void main(String[] args) {
// 创建多个线程同时调用静态方法
Thread thread1 = new Thread(() -> {
int localVar = 0; // 定义局部变量
for (int i = 0; i < 10; i++) {
localVar++; // 对局部变量进行操作
System.out.println("Thread 1: localVar = " + localVar);
}
});
Thread thread2 = new Thread(() -> {
int localVar = 0; // 定义局部变量
for (int i = 0; i < 10; i++) {
localVar++; // 对局部变量进行操作
System.out.println("Thread 2: localVar = " + localVar);
}
});
// 启动线程
thread1.start();
thread2.start();
}
}
在上面的示例中,我们创建了两个线程同时调用静态方法,并且每个线程都有自己的局部变量localVar
。每个线程都会对localVar
进行操作,并输出结果。由于局部变量是线程独享的,因此它们的值是相互独立的,不会相互影响。
运行上面的代码,你会看到输出结果类似于下面的内容:
Thread 1: localVar = 1
Thread 2: localVar = 1
Thread 1: localVar = 2
Thread 2: localVar = 2
...
可以看到,每个线程都能正确地维护自己的局部变量,不会发生相互干扰的情况。