Middle+
Čo je to asynchronita, paralelita a konkurentnosť v kontexte Go?
sobes.tech AI
Odpoveď od AI
V kontexte Go:
-
Asynchrónnosť — vykonávanie operácií bez blokovania hlavného vlákna, zvyčajne pomocou gorútín a kanálov. Umožňuje spúšťanie úloh, ktoré môžu byť vykonávané nezávisle a bez čakania na ich dokončenie.
-
Paralelizmus — súčasné vykonávanie viacerých úloh na rôznych jadrách procesora. V Go je to dosiahnuté plánovačom gorútín, ktorý ich rozdeľuje na systémové vlákna.
-
Súbežnosť — schopnosť programu spravovať viacero úloh, ktoré môžu byť vykonávané súčasne alebo po sebe, zabezpečujúc správny prístup ku zdieľaným zdrojom.
Príklad gorutiny:
func worker(id int) {
fmt.Printf("Dielňa %d začala\n", id)
// práca
}
func main() {
for i := 1; i <= 5; i++ {
go worker(i) // asynchrónne spustenie
}
time.Sleep(time.Second) // čakanie na dokončenie
}