Concorrência e Goroutines em Go
Em Go, goroutines são threads leves que permitem a execução concorrente de funções. Elas são executadas de forma independente, permitindo que diferentes partes do seu programa sejam executadas simultaneamente.
Concorrência é como organizar várias tarefas de um programa para que elas possam ser feitas ao mesmo tempo, ou em partes, sem depender uma da outra. Mesmo assim, o resultado final é o mesmo que se fossem feitas uma após a outra. Usar concorrência ajuda a alcançar os mesmos objetivos em menos tempo, tornando nossos programas mais rápidos e eficientes.
Conceito de Goroutines:
// Exemplo de criação de uma goroutine
go func() {
// Corpo da goroutine
}()
Facilitando a Concorrência:
Goroutines simplificam a programação concorrente em Go, tornando mais fácil criar aplicativos que realizam tarefas simultaneamente. Com apenas uma simples palavra-chave go
, você pode iniciar uma nova goroutine, como mostrado no exemplo acima.
Exemplo Prático:
// Exemplo de uso de goroutines
package main
import (
"fmt"
"time"
)
func main() {
// Iniciar uma nova goroutine
go func() {
for i := 0; i < 5; i++ {
fmt.Println("Goroutine:", i)
time.Sleep(time.Second)
}
}()
// Aguardar um pouco para permitir que a goroutine execute
time.Sleep(2 * time.Second)
fmt.Println("Programa principal finalizado")
}
Neste exemplo prático, uma nova goroutine é iniciada para imprimir números de 0 a 4. Enquanto isso, o programa principal continua sua execução. Isso demonstra como a concorrência pode ser facilmente alcançada com goroutines em Go.Adicionamos um sleep, para evitar o Race Condition
Goroutines são uma das características distintivas da linguagem Go, e são uma ferramenta poderosa para criar aplicativos concorrentes e paralelos de forma eficiente.
Comentários
Postar um comentário