나는 아이템 목록을 가지고 있는데, 아이템을 체크했을 때,리스트의 끝 부분에있다. 응용 프로그램이 스레드로부터 안전하기를 바랍니다.Java의 목록에있는 항목의 순서를 변경하고 스레드 안전성을 유지하는 방법은 무엇입니까?
"checkItem"코드의 코드는 "items"목록과 관련하여 안전합니까?
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를 사용합니다)는 스레드 안전 확인하기 위해 다음과 같이 변경합니다
'item.check()'의 기능은 무엇입니까? – Jeffrey
항목의 개인 속성을 변경합니다 (isChecked = true) – mrmuggles