Introdução

Concluído

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 e boolean.
  • Conhecimento de como escrever fluxos de controle de dados básicos como instruções if e for.
  • Conhecimento de como escrever funções.
  • Conhecimento de como usar bibliotecas como net/http.