В 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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