首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

Java线程中的局部变量

2011-12-04 
Java线程中的局部变量?为什么Java现在在方法中执行时,内部的局部变量不会产生安全问题?public void test()

Java线程中的局部变量?
为什么Java现在在
方法中执行时,内部的局部变量不会产生安全问题?

public void test()
{
int i = 0; // 例如这里的i
}

[解决办法]
每当启动一个新线程时,java虚拟机都会为它分配一个java栈,java栈上的所有数据都是此线程私有的.任何线程都不能访问另一个线程的栈数据,因此我们不需要考虑多线程情况下栈数据的访问同步问题.当一个线程调用一个方法的时候,方法的局部变量保存在调用线程的java栈的桢中,只有一个线程能访问那些局部变量,即调用方法的线程.

摘自:<深入java虚拟机(第2版)>
[解决办法]
火龙果说的不太完善,呵呵。每个线程都有自己的栈,这个线程里面所涉及的对象方法,每个方法由一个栈帧,用来存放局部变量,中间结果和操作数。

热点排行