Sobes.tech
Junior — Middle

Aké techniky spracovania paralelných úloh sú implementované v jazyku Go?

sobes.tech AI

Odpoveď od AI

V jazyku Go sú implementované nasledujúce techniky spracovania paralelných úloh:

  • Gorutiny — ľahké vlákna, ktoré sa spúšťajú pomocou kľúčového slova go. Umožňujú paralelné vykonávanie funkcií.

  • Kanály — mechanizmus komunikácie medzi gorutinami, ktorý umožňuje prenos dát a synchronizáciu vykonávania.

  • Selektory (select) — konštrukcia na čakanie na viacero operácií na kanáloch, umožňujúca spracovanie dát z viacerých zdrojov.

  • Balíček sync — obsahuje primitives synchronizácie ako Mutex, WaitGroup, Once, ktoré pomáhajú riadiť prístup ku zdieľaným zdrojom a koordinovať ukončenie gorutín.

Príklad spustenia gorutiny a prenosu dát cez 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
}