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