Junior — Middle
Jaké techniky zpracování paralelních úloh jsou implementovány v jazyce Go?
sobes.tech AI
Odpověď od AI
V jazyce Go jsou implementovány následující techniky zpracování paralelních úkolů:
-
Gorutiny — lehké vlákna, která jsou spuštěna pomocí klíčového slova
go. Umožňují paralelní vykonávání funkcí. -
Kanály — mechanismus komunikace mezi gorutinami, který umožňuje přenos dat a synchronizaci provádění.
-
Selektory (select) — konstrukce pro čekání na více operací na kanálech, umožňující zpracování dat z více zdrojů.
-
Balíček sync — obsahuje primitives synchronizace, jako jsou
Mutex,WaitGroup,Once, které pomáhají řídit přístup ke sdíleným zdrojům a koordinovat ukončení gorutin.
Příklad spuštění gorutiny a přenosu dat přes kanál:
package main
import (
"fmt"
)
func worker(ch chan string) {
ch <- "hotovo"
}
func main() {
ch := make(chan string)
go worker(ch)
msg := <-ch
fmt.Println(msg) // výstup: hotovo
}