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