アイテムのリストがあり、アイテムをチェックすると、リストの最後に移動します。アプリケーションをスレッドセーフにしたい。
リスト「アイテム」に関して「checkItem」のコードはスレッドセーフですか?
public class ItemListImpl implements ItemList {
List<Item> items = Collections.synchronizedList(new ArrayList<Item>());
/**
* Checks an item and brings it at the end of the list
*/
public void checkItem(int index) {
Item item = items.get(index);
item.check();
synchronized (items) {
items.remove(item);
items.add(items.size(), item);
}
}
}
(アイテムのインデックスを使用するという事実は忘れてください。オブジェクトまたは ID を使用します)