Sobes.tech
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
}