В Java как синхронизировать операции чтения и записи кешаJAVA

Программисты JAVA общаются здесь
Anonymous
В Java как синхронизировать операции чтения и записи кеша

Сообщение Anonymous »

Я работаю над реализацией простого кеша с использованием ArrayList в своем приложении.
Я хотел бы синхронизировать операции обновления кеша, при обновлении кеша я не должен разрешать выполнять операции чтения. Таким образом, как только обновление кэша будет завершено, чтение должно быть разрешено только для кэша.
ContextManager.java

Код: Выделить всё

public class ContextManager{
private List trashCanIds;
public List getIds() {
return ids;
}

public void setIds(List ids) {
this.ids = ids;
}
}
ConfigManager.java

Код: Выделить всё

public class ConfigManager{
ContextManager ctxManager = new ContextManager();
public synchronized List loadIds() throws Exception {
Utils utils = new Utils();
List listIds = null;
String[] ids = utils.fetchIds();
if(Objects.nonNull(ids) && ids.length > 0) {
listIds = new ArrayList(Arrays.asList(ids[0].split(",")));
}
ctxManager.setIds(idsList);
return idsList;
}
}
УдалитьManager.java

Код: Выделить всё

public class DeleteManager {
ConfigManager configManager = new ConfigManager();
configManager.loadIds();
}
TestManager.java

Код: Выделить всё

public class TestManager {
ContextManager contextManager = new ContextManager();
contextManager.getIds();
}
В этом коде я синхронизировал метод loadIds().
Нужна помощь, как предотвратить чтение getIds() во время выполнения loadIds() .

Подробнее здесь: https://stackoverflow.com/questions/719 ... operations

Вернуться в «JAVA»