Introdução
Você pode ter ouvido falar que o Go faz um trabalho incrível para simultaneidade. Talvez seja o recurso mais proeminente que se tornou tão popular quanto a opção de escrever outros programas de software, como Docker, Kubernetes e Terraform.
Antes de começar a saber como a simultaneidade funciona no Go, talvez seja necessário esquecer o que você já sabe de outras linguagens de programação. A abordagem do Go é diferente.
Neste ponto, você já tem o conhecimento necessário para abordar tópicos mais avançados como a simultaneidade. No entanto, começaremos explicando por que a simultaneidade é necessária. Apresentaremos outros tópicos aos poucos.
Recomendamos que você pratique todos os códigos de exemplo e não avance até entender por completo os conceitos. Como você experimentou nos módulos anteriores, é a prática que ajudará você a entender melhor os conceitos.
Vamos começar a explorar o que você aprenderá neste módulo.
Objetivos de aprendizagem
Neste módulo, você aprenderá sobre:
- O funcionamento da simultaneidade no Go.
- A diferença entre simultaneidade e paralelismo.
- O funcionamento da comunicação em um programa simultâneo usando canais.
- Como escrever um programa que é executado mais rapidamente implementando a simultaneidade.
- Como escrever programas dinâmicos que podem usar buffers para aproveitar a simultaneidade quando você deseja iniciar um número limitado de chamadas simultâneas.
Pré-requisitos
- Um ambiente do Go pronto para criar aplicativos. O ideal é que você tenha instalado e configurado o Go localmente, e que conte com o Visual Studio Code com a extensão do Go instalada.
- A capacidade de criar e modificar arquivos
.go
. - A capacidade de executar aplicativos Go usando o prompt do terminal.
- Conhecimento dos tipos de dados básicos como
string
,int
eboolean
. - Conhecimento de como escrever fluxos de controle de dados básicos como instruções
if
efor
. - Conhecimento de como escrever funções.
- Conhecimento de como usar bibliotecas como
net/http
.