Sobes.tech
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
}