我有一个项目列表,当我检查一个项目时,它位于列表的末尾。我希望应用程序是线程安全的。
关于列表“项目”,“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)