私は静的メソッドを持っており、それ自体で別の静的メソッドを呼び出しています。
例えば :
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を宣言しているため、その参照は他のスレッドによって共有される可能性があります。
問題は、配列が個々のスレッドスタックではなくヒープメモリに格納されていることです。したがって、多くのスレッドによる配列参照の共有が発生する可能性があると思います。