Qual é a diferença entre processo, thread e goroutine?
sobes.tech IA
Resposta da IA
Um processo é uma unidade isolada de execução com seu próprio espaço de endereçamento, recursos e memória. Cada processo funciona de forma independente, e para trocar dados entre processos geralmente é usada a comunicação entre processos (IPC).
Um thread é um fluxo de execução leve dentro de um processo, que compartilha memória e recursos com outros threads do mesmo processo. Os threads permitem executar várias tarefas em paralelo dentro de um mesmo processo.
Uma goroutine é uma abstração de um thread leve na linguagem Go. As goroutines são muito mais leves em recursos do que os threads do sistema, e são gerenciadas pelo agendador do runtime Go. Elas permitem escrever código concorrente de forma mais simples e eficiente do que usando threads normais.
Exemplo de criação de uma goroutine em Go:
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
}