Livelock — это состояние, аналогичное dead-lock, но вместо блокировки потоки постоянно пытаются выполнить работу, отменяя действия друг друга из-за конкуренции за ресурсы, что приводит к их неспособности продвинуться вперед.
Пример livelock: два потока пытаются взять два ресурса A и B. Поток 1:
Поток 2:
В результате потоки могут постоянно освобождать ресурсы и пытаться получить их снова, не достигая цели.
Различия с dead-lock:
Предотвращение:
Пример псевдокода с попыткой livelock:
swift
Livelock — это состояние, аналогичное dead-lock, но вместо блокировки потоки постоянно пытаются выполнить работу, отменяя действия друг друга из-за конкуренции за ресурсы, что приводит к их неспособности продвинуться вперед.
Пример livelock: два потока пытаются взять два ресурса A и B. Поток 1:
Поток 2:
В результате потоки могут постоянно освобождать ресурсы и пытаться получить их снова, не достигая цели.
Различия с dead-lock:
Предотвращение:
Пример псевдокода с попыткой livelock:
swift
Register or sign in to get access to full answers for all questions from the question bank.