Что такое устаревшее состояние?

Я читал о шаблоне пула объектов в Википедии ( http://en.wikipedia.org/wiki/Object_pool), где упоминается "опасно устаревшее состояние".

Что именно является "несвежим" состоянием? Я знаю, что состояние - это переменные / данные, такие как мои поля и свойства, но что это значит под устаревшими или опасно устаревшими?

5 ответов

Решение

Устаревшее состояние - это информация в объекте, которая не отражает реальность.

Пример: члены объекта заполняются информацией из базы данных, но базовые данные в базе данных изменились с момента заполнения объекта.

Опасно устаревшее состояние - это устаревшее состояние, которое может отрицательно повлиять на работу программы, то есть заставить ее работать некорректно из-за неверных предположений о целостности данных.

Это происходит, когда значение, хранящееся в объекте, больше не отражает основное постоянное значение. Я предполагаю, что опасно несвежее - просто способ сказать, что ценность действительно устарела.

"Устаревшее состояние" - это когда устаревшее сохраненное (кэшированное) представление объекта остальной части системы. Например, объект держит дескриптор какого-либо другого объекта, но второй объект тем временем был удален.

Попытка разыменования устаревшей ручки может привести к большим проблемам.

Большинство систем будут пытаться автоматически защитить вас от различных причин, в результате которых вы окажетесь в устаревшем состоянии, но не всегда возможно охватить каждый случай. (В зависимости от системы.)

Larry

В контексте SQL устаревшее состояние относится к ситуации, когда запрос к базе данных возвращает устаревшие или противоречивые данные. Это может произойти, когда несколько транзакций пытаются одновременно изменить одни и те же данные, что приводит к временному несоответствию информации, хранящейся в базе данных. Это может привести к тому, что данные не будут актуальными и, следовательно, будут считаться «устаревшими». Чтобы предотвратить устаревание данных, системы баз данных обычно используют механизмы блокировки или уровни изоляции транзакций, чтобы гарантировать, что данные остаются непротиворечивыми и актуальными.

По сути, это означает недопустимое состояние. Обычно побочным продуктом является не уведомление ваших случаев изменения состояния.

Другие вопросы по тегам