Sobes.tech
Senior

რა არის პესიმისტური ბლოკირება?

sobes.tech AI

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

პესიმისტური ბლოკირება — ეს მონაცემებზე კონკურენტული წვდომის მართვის მიდგომაა, სადაც რესურსი დაუყოვნებლივ ბლოკდება ოპერაციის დაწყებისას, რათა თავიდან აიცილოს კონფლიქტები. ანუ, როდესაც ტრანზაქცია გსურს მონაცემების შეცვლა, ის იღებს ბლოკირებას, და სხვა ტრანზაქციები ელოდებიან, სანამ ბლოკირება არ განთავისუფლდება.

Go-ში ეს შეიძლება განხორციელდეს mutex-ების (sync.Mutex) გამოყენებით, რომლებიც ბლოკავენ წვდომას გაზიარებულ მონაცემებზე:

var mu sync.Mutex

func updateData() {
    mu.Lock()   // პესიმისტური ბლოკირება
    defer mu.Unlock()
    // კრიტიკული სექცია
}

ეს მიდგომა უზრუნველყოფს, რომ მხოლოდ ერთი გორუტინა შეუძლია მონაცემების შეცვლა ერთდროულად, მაგრამ შეიძლება გამოიწვიოს პარალელიზმის შემცირება და ბლოკირებები.