我有静态方法,它本身调用另一个静态方法。静态方法以对象引用作为参数调用另一个静态方法:线程安全吗?
例如:
public List<Object> static first(int id){
List<Object> list=new ArrayList<Object>();
list.add(a);
list.add(b);
list.add(c);
//calling another static method
second(id,list);
return list;
}
public String static second(int id,List<Object> listRef){
listRef.add(a);
listRef.add(b);
listRef.add(c);
}
我的问题是:
多线程调用public static method first(int id);
用不同的ID。
这是线程安全的方式吗?正如我在方法中声明arrayList而我的东西它的引用可能由其他线程共享。
问题是,阵列由多个线程 可能发生存储在没有个人 线程Stack.So我想分享的数组引用堆内存。
是的你是对的,但在该方法中声明的对象存储在堆中,而不是堆栈,因为它的(堆栈)大小是固定的 –
局部变量不直接与堆和堆栈相关。一个本地int将被存储在堆栈上,而一个本地对象将被存储在堆上,并且它的引用被堆栈。 – rocketboy
好吧,我明白谢谢! :) –