Sobes.tech
Junior — Middle

Standart kart çoxlu iş parçacığı eyni vaxtda işləyərkən paralel təhlükəsizlik təmin edir?

sobes.tech Süni İntellekt

AI-dan cavab

Go-da standart xəritə (map) eyni zamanda yazma və ya oxuma və yazma əməliyyatları üçün çoxlu goroutin-lərdən istifadə edildikdə təhlükəsiz deyil. Əgər çoxlu goroutin-lər sinxronizasiyasız olaraq map-ə müraciət edirsə, bu panik və ya düzgün olmayan məlumatlara səbəb ola bilər.

Paralel təhlükəsizliyi təmin etmək üçün aşağıdakı vasitələrdən istifadə etmək olar:

  • sync.Mutex, map-ə girişin bloklanması üçün
  • sync.RWMutex, oxuma və yazmanı ayırmaq üçün
  • sync.Map — Go 1.9-da təqdim olunan, çoxsaylı girişlər üçün optimallaşdırılmış xüsusi təhlükəsiz məlumat strukturu

sync.Map istifadə nümunəsi:

var m sync.Map
m.Store("key", "value")
value, ok := m.Load("key")

Beləliklə, standart map çoxsaylı girişlər üçün təhlükəsiz deyil, lakin məlumatlarla təhlükəsiz işləmək üçün vasitələr mövcuddur.