Страницы

Поиск по вопросам

четверг, 13 июня 2019 г.

Java пример livelock

Как livelock выглядит в коде ? В интернете найдены лишь примеры с жизнью, где встречаются люди в коридоре.


Ответ

Примером может быть простой алгоритм консенсуса. Предположим, что есть некоторый алгоритм, который согласует текущее значение какого-то регистра. Если в момент выработки консенсуса приходит сообщение об обновлении данных, алгоритм сбрасывается и начинает сначала. Если такие сообщения приходят слишком часто, получается тот самый live lock - система постоянно работает, но никак не может согласовать значение. Упрощенным примером (это не алгоритм консенсуса) будет подсчет всех записей, которыми управляет приложение - если в момент подсчета прилетает сообщение о том, что была изменена или добавлена запись, алгоритм должен начаться сначала. Если сообщения добавляются слишком часто, система попадает в live lock.

Комментариев нет:

Отправить комментарий