Sobes.tech
Junior — Middle

შეგიძლიათ მიაწოდოთ მაგალითი სიტუაციის, როდესაც სისტემაში ხდება რესურსების ურთიერთშეზღუდვა?

sobes.tech AI

პასუხი AI-სგან

Դուագլոկ (deadlock) տեղի է ունենում, երբ երկու կամ ավելի գործընթացներ (կամ թելեր) սպասում են միմյանց, պահելով ռեսուրսներ, որոնք մյուսները պետք է շարունակելու համար:

Օրինակ, իրավիճակ:

  • Թել A-ն ձեռք է բերում ռեսուրս 1-ը և փորձում է ստանալ ռեսուրս 2-ը:
  • Թել B-ն ձեռք է բերում ռեսուրս 2-ը և փորձում է ստանալ ռեսուրս 1-ը:

Երկուսն էլ սպասում են, որ մյուսը ազատի ռեսուրսները, և ոչ մեկը չի կարող շարունակել:

iOS-ում դա կարող է տեղի ունենալ, օրինակ, մի քանի բլոկավորումների (locks) կամ հերթերի օգտագործման ժամանակ, երբ ռեսուրսների ձեռքբերման կարգը վերահսկված չէ։ Դուագլոկ-ների կանխարգելման համար կարևոր է պահպանել ռեսուրսների ձեռքբերման կարգը կամ օգտագործել ժամանակային սահմանափակումներ և այլ սինխրոնիզացիայի մեխանիզմներ։