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