Introdução
Você já deve ter ouvido falar que Go faz um excelente trabalho para simultaneidade. Talvez seja o recurso mais proeminente que tornou o Go tão popular e a escolha para escrever outros softwares como Docker, Kubernetes e Terraform.
Antes de começar a aprender sobre como a simultaneidade funciona no Go, talvez seja necessário esquecer o que já sabe de outras linguagens de programação. A abordagem de Go é diferente.
Neste ponto, você já tem o conhecimento necessário para cobrir tópicos mais avançados, como simultaneidade. No entanto, começaremos argumentando por que a simultaneidade é necessária. Vamos introduzindo diferentes tópicos pouco a pouco.
Recomendamos que você pratique todos os exemplos de código e não avance até entender completamente os conceitos. Como você já experimentou em módulos anteriores, a prática é o que irá ajudá-lo a entender melhor os conceitos.
Vamos começar a explorar o que você aprenderá neste módulo.
Objetivos de aprendizagem
Neste módulo, irá aprender sobre:
- Como funciona a simultaneidade no Go.
- A diferença entre simultaneidade e paralelismo.
- Como funciona a comunicação em um programa simultâneo usando canais.
- Como escrever um programa que é executado mais rápido implementando simultaneidade.
- Como escrever programas dinâmicos que podem usar buffers para tirar proveito da simultaneidade quando você deseja iniciar um número limitado de chamadas simultâneas.
Pré-requisitos
- Um ambiente Go pronto para criar aplicativos. Idealmente, você deve ter o Go instalado e configurado localmente e ter o Visual Studio Code instalado com a extensão Go.
- A capacidade de criar e modificar
.go
arquivos. - A capacidade de executar aplicativos Go usando o prompt do terminal.
- Conhecimento de tipos de dados básicos como
string
,int
eboolean
. - Conhecimento de como escrever fluxos básicos de controle de dados como
if
efor
instruções. - Conhecimento de como escrever funções.
- Conhecimento de como usar bibliotecas como
net/http
.