Middle+
Go kontekstində asinxronluq, paralellik və rəqabət nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Go kontekstində:
-
Asinxronluq — əsas axını bloklamadan əməliyyatların yerinə yetirilməsi, adətən gorutinlər və kanallar vasitəsilə. Bu, müstəqil şəkildə icra oluna bilən və onların tamamlanmasını gözləmədən tapşırıqları başlatmağa imkan verir.
-
Paralellik — müxtəlif CPU nüvələrində eyni vaxtda bir neçə tapşırığın yerinə yetirilməsi. Go-da bu, gorutinlərin planlayıcısı vasitəsilə həyata keçirilir, o, onları sistem ipliklərinə paylayır.
-
Mübarizə — proqramın eyni vaxtda və ya ardıcıl şəkildə icra oluna bilən çoxsaylı tapşırıqları idarə etmək qabiliyyəti, ümumi resurslara düzgün giriş təmin edir.
Goroutine nümunəsi:
func worker(id int) {
fmt.Printf("İşçi %d başladı\n", id)
// iş
}
func main() {
for i := 1; i <= 5; i++ {
go worker(i) // asinxron başlatma
}
time.Sleep(time.Second) // tamamlanmasını gözləyirik
}