Sobes.tech
Junior — Middle

Co činí gorutiny efektivnějšími ve srovnání s tradičními vlákny?

sobes.tech AI

Odpověď od AI

Gorutiny v jazyce Go jsou efektivnější než tradiční vlákna díky několika klíčovým vlastnostem:

  • Lehkost: Gorutiny zabírají velmi málo paměti (obvykle kolem 2 KB zásobníku), zatímco systémová vlákna vyžadují mnohem více paměti.
  • Plánovač na úrovni jazyka: Go má vlastní plánovač gorutin, který efektivně rozděluje jejich provádění na systémová vlákna, což umožňuje spouštět tisíce gorutin současně bez významných nákladů.
  • Rychlé vytváření a přepínání kontextu: Vytváření a přepínání mezi gorutinami je mnohem rychlejší než mezi OS vlákny, což snižuje náklady na multitasking.

Příklad vytvoření gorutiny:

func sayHello() {
    fmt.Println("Ahoj z gorutiny")
}

func main() {
    go sayHello() // spuštění gorutiny
    time.Sleep(time.Second) // čekáme, aby gorutina měla čas se vykonat
}