Sobes.tech
Junior — Middle

Jak jsou v jazyce Go realizovány paralelní výpočty?

sobes.tech AI

Odpověď od AI

V jazyce Go jsou paralelní výpočty realizovány pomocí gorutin (goroutines) a kanálů (channels).

Gorutiny jsou lehké vlákna, která jsou spuštěna pomocí klíčového slova go. Umožňují asynchronní a paralelní vykonávání funkcí.

Příklad paralelního spuštění dvou funkcí:

func úkol(id int) {
    fmt.Printf("Úkol %d začal\n", id)
    // simulace práce
    time.Sleep(time.Second)
    fmt.Printf("Úkol %d skončil\n", id)
}

func main() {
    go úkol(1)
    go úkol(2)
    time.Sleep(2 * time.Second) // aby gorutiny mohly skončit
}

Kanály se používají pro synchronizaci a přenos dat mezi gorutinami, což umožňuje bezpečnou výměnu informací bez blokování.

Tímto způsobem Go poskytuje jednoduché a efektivní prostředky pro organizaci paralelních výpočtů.