Страницы

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

понедельник, 3 февраля 2020 г.

Глобальный фиксированный порядок блокировок

#многопоточность #теория


Как работает задание блокировкам глобального фиксированного порядка? Для чего это нужно?
    


Ответы

Ответ 1



Это способ избежать взаимоблокировок (deadlocks). Работает он просто: всем ресурсам присваиваются уникальные номера. Блокировать ресурсы каждому потоку разрешается только в порядке увеличения номера, снятие блокировки, соответственно, происходит в порядке уменьшения. Полезнее всего данный метод оказывается в ситуациях, когда все ресурсы, для которых понадобится взять блокировку, оказываются известны заранее. Так, в задаче об обедающих философах можно пронумеровать вилки и заставить философов брать вилки в порядке возрастания. Аналогичное решение применимо в задаче о банковских счетах и переводах между ними.

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

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