Sobes.tech
Junior

Go-da hansı şeylər iş parçaları təhlükəsizliyini təmin edir?

sobes.tech Süni İntellekt

AI-dan cavab

Go-da çoxluq təhlükəsizliyi bir neçə mexanizm ilə təmin edilir:

  • Goroutinlər — paralel şəkildə kod icra etməyə imkan verən yüngül iş parçaları.
  • Kanal — goroutinlər arasında təhlükəsiz məlumat mübadiləsi üçün əsas vasitə, ümumi dəyişənlərdən istifadə etmədən.
  • sync paketi — kritik bölmələri kilidləmək üçün Mutex, oxuma və yazma üçün kilidləri bölmək üçün RWMutex, və goroutinlərin tamamlanmasını gözləmək üçün WaitGroup kimi sinxronizasiya primitive-lərini ehtiva edir.

Ümumi resursu qorumaq üçün mutex istifadəsinə nümunə:

import (
    "sync"
)

var mu sync.Mutex
var sayğac int

func artır() {
    mu.Lock()
    defer mu.Unlock()
    sayğac++
}

Beləliklə, Go-da çoxluq təhlükəsizliyi düzgün goroutinlər, kanallar və sync paketindən sinxronizasiya primitive-lərindən istifadə etməklə əldə edilir.