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.