Я хотел бы синхронизировать операции обновления кеша, при обновлении кеша я не должен разрешать выполнять операции чтения. Таким образом, как только обновление кэша будет завершено, чтение должно быть разрешено только для кэша.
ContextManager.java
Код: Выделить всё
public class ContextManager{
private List trashCanIds;
public List getIds() {
return ids;
}
public void setIds(List ids) {
this.ids = ids;
}
}
Код: Выделить всё
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;
}
}
Код: Выделить всё
public class DeleteManager {
ConfigManager configManager = new ConfigManager();
configManager.loadIds();
}
Код: Выделить всё
public class TestManager {
ContextManager contextManager = new ContextManager();
contextManager.getIds();
}
Нужна помощь, как предотвратить чтение getIds() во время выполнения loadIds() .
Подробнее здесь: https://stackoverflow.com/questions/719 ... operations