Capítulo 12. Concurrencia en Go

Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com

La concurrencia es el término informático para dividir un único proceso en componentes independientes y especificar cómo estos componentes comparten datos de forma segura. La mayoría de los lenguajes proporcionan concurrencia mediante una biblioteca que utiliza hilos a nivel del sistema operativo que comparten datos intentando adquirir bloqueos. Go es diferente. Su principal modelo de concurrencia, posiblemente la característica más famosa de Go, se basa en Procesos Secuenciales Comunicados (PSC). Este estilo de concurrencia se describió en 1978 en un artículo de Tony Hoare, el inventor del algoritmo Quicksort. Los patrones implementados con CSP son tan potentes como los estándar, pero mucho más fáciles de entender.

En este capítulo, vas a repasar rápidamente las características que constituyen la columna vertebral de la concurrencia en Go: goroutines, canales y la palabra clave select. A continuación, verás algunos patrones comunes de concurrencia en Go y conocerás las situaciones en las que las técnicas de bajo nivel son un mejor enfoque.

Cuándo utilizar la concurrencia

Empecemos con una palabra de precaución. Asegúrate de que tu programa se beneficia de la concurrencia. Cuando los nuevos desarrolladores Go empiezan a experimentar con la concurrencia, suelen pasar por una serie de etapas:

  1. Esto es increíble; ¡voy a ponerlo todo ...

Get Aprender Go, 2ª Edición now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.