Middle — Middle+
Çox iplikli mühitdə əlavə sinxronizasiya olmadan map konteynerinə təhlükəsiz yazma mümkündürmü?
sobes.tech Süni İntellekt
AI-dan cavab
Go-da standart xəritə (map) yazma üçün təhlükəsiz deyil. Əgər bir neçə goroutin eyni zamanda map-ə yazırsa və sinxronizasiya edilməzsə, bu, məlumatların yarışmasına və işləmə zamanı panikaya səbəb olacaq.
Çox ipli mühitdə map-ə təhlükəsiz yazmaq üçün aşağıdakıları istifadə etmək lazımdır:
- sync.Mutex və ya sync.RWMutex girişə kilidləmək üçün;
- sync.Map, standart kitabxanadan çox ipli təhlükəsiz xəritə tətbiqi.
sync.Mutex ilə nümunə:
var mu sync.Mutex
var m = make(map[string]int)
func safeWrite(key string, value int) {
mu.Lock()
m[key] = value
mu.Unlock()
}
Belə sinxronizasiya olmadan, map-ə yazmaq təhlükəsiz deyil.