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
}