Sobes.tech
Junior — Middle

Можете ли да дате пример ситуације када долази до међусобног блокирања ресурса у систему?

sobes.tech АИ

Одговор од АИ

Заглавље (deadlock) се дешава када два или више процеса (или нити) чекају један на други, држећи ресурсе који су потребни другима за наставак рада.

Пример ситуације:

  • Нит А добија ресурс 1 и покушава да добије ресурс 2.
  • Нит Б добија ресурс 2 и покушава да добије ресурс 1.

Обје нитови чекају да се ресурси ослободе од стране другог, и ниједан не може да настави.

На iOS-у, ово може да се деси, на пример, при коришћењу више закључавања (locks) или редова, када редослед добијања ресурса није контролисан. Да би се избегли deadlock-ови, важно је поштовати редослед добијања ресурса или користити timeout-ове и друге механизме синхронизације.