Introducción

Completado

Es posible que se sepa que Go realiza un trabajo de simultaneidad excelente. Quizás sea la característica más destacada que ha hecho que Go sea tan popular y la opción preferida para escribir otro software como Docker, Kubernetes y Terraform.

Antes de empezar a aprender sobre cómo funciona la simultaneidad, puede que tenga que olvidar lo que ya conoce de otros lenguajes de programación. El enfoque de Go es diferente.

En este punto, ya tiene los conocimientos necesarios para cubrir temas más avanzados, como la simultaneidad. No obstante, comenzaremos por la razón por la que se necesita la simultaneidad. Vamos a introducir distintos temas poco a poco.

Le recomendamos que practique todos los códigos de ejemplo y que no avance hasta que comprenda totalmente los conceptos. Como ha experimentado en los módulos anteriores, la práctica es lo que lo ayudará a entender mejor los conceptos.

Comencemos a analizar lo que aprenderá en este módulo.

Objetivos de aprendizaje

En este módulo, obtendrá información sobre lo siguiente:

  • Aprender el funcionamiento de la simultaneidad en Go
  • La diferencia entre simultaneidad y paralelismo
  • El funcionamiento de la comunicación en un programa simultáneo mediante el uso de canales
  • Cómo escribir un programa que se ejecute más rápido implementando la simultaneidad
  • Cómo escribir programas dinámicos que puedan usar búferes para aprovechar las ventajas de la simultaneidad cuando se desea iniciar un número limitado de llamadas simultáneas

Requisitos previos

  • Un entorno de Go preparado para crear aplicaciones. Lo mejor es tener instalado y configurado Go localmente, y tener instalado Visual Studio Code con la extensión Go.
  • Capacidad para crear y modificar archivos .go.
  • Capacidad para ejecutar aplicaciones de Go mediante el símbolo del sistema del terminal.
  • Conocimientos de los tipos de datos básicos, como string, int y boolean.
  • Conocimientos de cómo escribir flujos de control de datos básicos, como instrucciones if y for.
  • Conocimientos de cómo escribir funciones.
  • Conocimientos de cómo usar bibliotecas como net/http.