Java 中函数内的变量不能用static修饰,修饰的话只能用final,所以没有不可重入问题?

Java 中函数内的变量不能用static修饰,修饰的话只能用final,所以没有不可重入问题?

0

7个回答

可重入的意思是线程可以重复获得它已经持有的锁?不知你是否是这个意思。

0

静态方法中就可以定义静态变量

0

static只能修饰类的成员变量,而函数内的变量可以用final修饰,是考虑到闭包的问题,即这个final修饰的变量存在的时间可能比创建它的环境要长久。
例如下列代码,匿名函数创建的线程访问了外界函数的final变量,而匿名函数线程存在的生命周期可能要比fianl修饰的变量创建环境要长。

 public static void main(String[] args){
final int count = 5;
new Thread(new Runnable(){
public void run(){System.out.println("running"+count);}
}).start();
}
0

这里的可重入是指线程中后再回来执行吗?感觉这跟static,final无关,中断的话变量这些还是会保存起来的~

0

这里的可重入是指线程中后再回来执行吗?感觉这跟static,final无关,中断的话变量这些还是会保存起来的~

0
u010738033
草莓小王子 回复Hungryhao: 恩,那如果存在多线程访问临界资源的话还是有可重入问题的吧
接近 4 年之前 回复
hungryhao
Hungryhao http://blog.csdn.net/acs713/article/details/20034511
接近 4 年之前 回复

静态变量 只能在静态方法中定义

0

同问这里的“可重入”是指的是?

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!