【初心者】Java質問・相談スレッド59【大歓迎】
レス数が950を超えています。1000を超えると書き込みができなくなります。
0972デフォルトの名無しさん
NGNG簡単な例をあげると、v が Vector だとして、
int i = myVector.size() - 1;
/* 他のスレッドが v.removeAllElements() を実行 */
System.out.println(myVector.elementAt(i)); // ArrayIndexOutOfBoundsException が起こる。
ここで Exception を避けたければ、この外側で synchronized(v) としなければならない。
ちなみに、こういう状況になったときに、確実に Exception が発生するのが広義のスレッドセーフ。
ArrayList では Exception が発生するかすら保証されない。
レス数が950を超えています。1000を超えると書き込みができなくなります。