Sobes.tech
Junior — Middle

Proqramların paralel icrası zamanı yarış şərti nədir izah edə bilərsinizmi?

sobes.tech Süni İntellekt

AI-dan cavab

Yarış şərti (race condition) bir neçə axın və ya proses eyni zamanda ümumi məlumatlara müraciət edib dəyişdirdikdə, düzgün sinxronizasiya olmadan baş verir. Nəticədə, məlumatların son vəziyyəti əməliyyatların icra sırasına bağlı olur və bu, proqnozlaşdırılmayan səhvlərə səbəb olur.

Məsələn, iki axın eyni vaxtda sayğacı artırmağa çalışırsa və hər ikisi köhnə dəyəri oxuyursa, yekun dəyər yalnız 1 artır, 2 yox.

iOS-da bu, çoxluq iş parçacığı ilə işləyərkən (məsələn, GCD və ya OperationQueue) sinxronizasiya mexanizmləri (kilidlər, növbələr, atomik əməliyyatlar) istifadə olunmadıqda baş verə bilər. Yarış şərtlərindən qaçınmaq üçün, paylaşılan resurslara ardıcıl giriş təmin edilməlidir.