Sobes.tech
Junior — Middle

Ի՞նչ է նվազագույն քանակը հոսանքների, որոնք անհրաժեշտ են փոխադարձ փակման (Deadlock) առաջացման համար։

sobes.tech AI

Պատասխան AI-ից

Deadlock-ի առաջացման համար անհրաժեշտ նվազագույն հոսքերի թիվը երկու է:

Միջմիջային փակման դեպքում երկու կամ ավելի հոսքերը միաժամանակ պահում են ռեսուրսներ և սպասում են, որ մյուս հոսքը ազատի այն ռեսուրսը, որը պահում է։ Օրինակ՝

  • Հոսք A-ն փակել է ռեսուրս 1-ը և սպասում է ռեսուրս 2-ին։
  • Հոսք B-ն փակել է ռեսուրս 2-ը և սպասում է ռեսուրս 1-ին։

Երկուսն էլ անսահման ժամանակով փակված են, քանի որ յուրաքանչյուրն սպասում է մյուսի ռեսուրսի ազատմանը։

Պսևդոկոդի օրինակ՝

// Հոսք 1
lock(ռեսուրս1)
wait()
lock(ռեսուրս2)

// Հոսք 2
lock(ռեսուրս2)
wait()
lock(ռեսուրս1)

Այսպիսով, deadlock-ի համար բավարար է երկու հոսք և երկու ռեսուրս։