タイトルの言葉遣いについては、説明が不十分で申し訳ありません。誰かがそれを編集できれば、それは素晴らしいことです:)
共有状態にアクセスする 4 つのメソッドがあります。現在、それらはスレッドセーフではありません。共有状態はリストです。メソッドのうち 2 つはリストを変更し、2 つはそれを繰り返します。すべてのメソッドを単純に同期することは可能ですが、パフォーマンスが低下します。変更メソッドが実行されていない限り、反復メソッドが複数のスレッドで同時に実行されても完全に安全です。
複数のリーダーを実行できるようにするロック方法、または単一のライターが必要です。
private List<T> list;
public void insert(T t) {// Write shared state
list.add(t);
}
public void remove(T t) {// Write shared state
list.remove(t);
}
public void doStuff(T t) {// Read shared state
// iterate list and do stuff
}
public void doOtherStuff() {// Read shared state
// iterate list and do stuff
}