Capítulo 3. Los bloques de construcción de la concurrencia de Go

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

En este capítulo, hablaremos del rico tapiz de características de Go que sustentan su historia de concurrencia. Al final de este capítulo, deberías tener un buen conocimiento de la sintaxis, las funciones y los paquetes disponibles, así como de su funcionalidad.

Goroutines

Las goroutinas son una de las unidades de organización más básicas de un programa Go, por lo que es importante que entendamos qué son y cómo funcionan. De hecho, todo programa Go tiene al menos una gorutina: la gorutina principal, que se crea e inicia automáticamente cuando comienza el proceso. En casi cualquier programa, es probable que tarde o temprano te encuentres recurriendo a una gorutina para que te ayude a resolver tus problemas. ¿Qué son?

En pocas palabras, una gorutina es una función que se ejecuta simultáneamente (recuerda: ¡no necesariamente en paralelo!) junto con otro código. Puedes iniciar una simplemente colocando la palabra clave go delante de una función:

func main() {
    go sayHello()
    // continue doing other things
}

func sayHello() {
    fmt.Println("hello")
}

¡Las funciones anónimas también funcionan! He aquí un ejemplo que hace lo mismo que el anterior; sin embargo, en lugar de crear una goroutine a partir de una función, creamos una goroutine a partir de una función anónima:

go func() {
    fmt.Println("hello")
}(

Get Concurrencia en Go 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.