Far*_*aev 2 java concurrency multithreading
根据 Java 并发实践,
每个线程都有自己的程序计数器、堆栈和局部变量。
我对“局部变量”语句感到困惑。这里的局部变量是什么意思?这是否意味着线程中共享变量的本地副本,例如,如果两个线程异步读取一个全局变量,则每个线程在其代码执行/路径中都持有该变量的副本?
或者它是指在线程内显式声明和创建的变量,哪些不是共享的?
局部变量只是局部范围的变量。有关更多信息和示例,请参阅JLS 6.3。
在下面的方法中
void method(String param1, int param2) {
String concat = param1 + param2;
if(concat.length() > 2) {
int length = concat.length();
System.out.println("concat is " + length + " character long");
}
}
Run Code Online (Sandbox Code Playgroud)
局部变量包括方法参数(param1, param2),方法中声明的变量(concat, length)
对于您的问题,变量的生命周期不会超出方法的执行。