Sobes.tech
Junior — Middle

რამდენი ნაკადი სჭირდება ურთიერთდახშობის (Deadlock) წარმოქმნას?

sobes.tech AI

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

Deadlock-ის წარმოქმნისთვის საჭირო მინიმალური ნაკადი რაოდენობა ორი-ს არის.

Deadlock-ის დროს ორი ან მეტი ნაკადი ერთდროულად იკავებს რესურსებს და თითოეული ელოდება სხვა ნაკადის მიერ დაკავებული რესურსის გათავისუფლებას. მაგალითად:

  • ნაკადი A იკავებს რესურს 1-ს და ელოდება რესურს 2-ს.
  • ნაკადი B იკავებს რესურს 2-ს და ელოდება რესურს 1-ს.

ორივე ნაკადი მარადიულია დაბლოკილი, რადგან თითოეული ელოდება სხვა ნაკადის მიერ დაკავებული რესურსის გათავისუფლებას.

პსევდოკოდის მაგალითი:

// ნაკადი 1
lock(რესურსი1)
wait()
lock(რესურსი2)

// ნაკადი 2
lock(რესურსი2)
wait()
lock(რესურსი1)

ამიტომ, deadlock-ისთვის საკმარისია ორი ნაკადი და ორი რესურსი.