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ů.