public void add(String newPersonName) {
if (personNameIdMap.get(newPersonName) != null) {
myPersonId.add(personNameIdMap.get(newPersonName)
} else {
// get the id from Twitter and add to the list
}
// make an API call to Twitter
}
public void delete(String personNAme) {
if (personNameIdMap.get(newPersonName) != null) {
myPersonId.remove(personNameIdMap.get(newPersonName)
} else {
// wrong person name
}
// make an API call to Twitter
}
我知道并发问题可能会出现。我了解了三种解决方案:
synchronized
方法。- 使用
Collections.synchronizedlist()
。 CopyOnWriteArrayList
。
我不确定应该选择哪一种来防止不一致。
CopyOnWriteArrayList
,因为它更适合遍历而不是变异。 - Moonbeamadd
和delete
,则可以同时向myPersonId
添加和删除。 - Gravity