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
}