Что такое livelock?

Senior
168 просмотров
AFK Offer AI

Livelock — потоки не заблокированы, но постоянно реагируют друг на друга и не продвигаются. Пример: два человека в коридоре уступают друг другу и оба сдвигаются в одну сторону. В коде: поток A видит, что B занят — отпускает свой ресурс, B видит то же — отпускает свой, и так бесконечно. Решение: добавить случайную задержку (random backoff), приоритеты, или фиксированный порядок. Livelock сложнее обнаружить чем deadlock — потоки активны, но работа не двигается.

Следующий вопрос

Что такое Spring Integration и чем он отличается от Spring Batch?