Sobes.tech
Junior — Middle

Kaip įgyvendinami lygiagrečiai skaičiavimai Go kalboje?

sobes.tech AI

Atsakymas iš AI

Go kalboje paraleliniai skaičiavimai įgyvendinami naudojant goroutines (goroutines) ir kanalus (channels).

Goroutines yra lengvi srautai, kurie pradedami naudojant raktinį žodį go. Jie leidžia funkcijas vykdyti asinchroniškai ir paraleliai.

Pavyzdys dviejų funkcijų paraleliniam paleidimui:

func užduotis(id int) {
    fmt.Printf("Užduotis %d pradėta\n", id)
    // darbo imitacija
    time.Sleep(time.Second)
    fmt.Printf("Užduotis %d baigta\n", id)
}

func main() {
    go užduotis(1)
    go užduotis(2)
    time.Sleep(2 * time.Second) // kad goroutines galėtų užbaigti darbą
}

Kanalai naudojami sinchronizacijai ir duomenų perdavimui tarp goroutine'ų, užtikrinant saugų informacijos mainus be blokavimo.

Taip, Go siūlo paprastus ir efektyvius būdus organizuoti paralelinius skaičiavimus.