Junior — Middle
Quais são as vantagens de usar goroutines em comparação com threads do sistema para melhorar o desempenho das aplicações?
sobes.tech IA
Resposta da IA
As goroutines em Go têm várias vantagens sobre os threads do sistema:
- Leveza: as goroutines usam muito menos memória (normalmente alguns quilobytes), enquanto que os threads do sistema requerem muito mais recursos.
- Escalabilidade: é possível lançar milhares ou até milhões de goroutines simultaneamente, o que é difícil com threads.
- Troca de contexto rápida: o escalonador de Go gere eficientemente as goroutines, trocando entre elas mais rápido do que o sistema operativo entre threads.
- Simplicidade na sincronização: canais embutidos e outras primitivas simplificam a troca de dados entre goroutines.
Exemplo de criação de uma goroutine:
package main
import (
"fmt"
"time"
)
func sayHello() {
fmt.Println("Olá de uma goroutine")
}
func main() {
go sayHello() // iniciar a goroutine
time.Sleep(time.Second) // esperar para que a goroutine seja executada
}