Sobes.tech
Junior — Middle

Quais são as vantagens de usar goroutines em comparação com threads?

sobes.tech IA

Resposta da IA

As goroutines em Go são threads leves geridos pelo runtime do Go, não pelo sistema operativo. As suas vantagens em comparação com os threads tradicionais:

  • Menor consumo de memória: As goroutines ocupam alguns quilobytes de memória, enquanto os threads — megabytes.
  • Criação e troca rápida: O início e a troca entre goroutines é muito mais rápido.
  • Simplicidade na sincronização: Go fornece canais para trocar dados de forma segura entre goroutines, o que simplifica a programação concorrente.
  • Escalabilidade: Pode-se lançar milhares e até milhões de goroutines simultaneamente.

Exemplo de criação de uma goroutine:

func sayHello() {
    fmt.Println("Olá de uma goroutine")
}

func main() {
    go sayHello() // inicia a goroutine
    time.Sleep(time.Second) // espera para que a goroutine seja executada
}