同期化された次のコード スニペットはArrayList
、マルチスレッド環境で機能しますか?
class MyList {
private final ArrayList<String> internalList = new ArrayList<String>();
void add(String newValue) {
synchronized (internalList) {
internalList.add(newValue);
}
}
boolean find(String match) {
synchronized (internalList) {
for (String value : internalList) {
if (value.equals(match)) {
return true;
}
}
}
return false;
}
}
あるスレッドが別のスレッドによる変更を確認できないことが心配です。