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-ისთვის საკმარისია ორი ნაკადი და ორი რესურსი.