English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriales básicos de Golang

Instrucciones de control de Golang

Funciones y métodos de Golang

Estructuras de Golang

Cortes y arreglos de Golang

Cadenas (String) de Golang

Punteros de Golang

Interfaces de Golang

Concurrencia de Golang

Excepciones (Error) de Golang

Misceláneos de Golang

Múltiples Goroutines del lenguaje Go

Una goroutine es una función o método que puede ejecutarse independientemente y simultáneamente con cualquier otra goroutine existente en el programa. En otras palabras, cada actividad que se ejecuta simultáneamente en el lenguaje Go se llama goroutines. En Go, se permite crear múltiples goroutines en un programa. Puede crear una goroutine simplemente utilizando la palabra clave 'go' como prefijo en la llamada a una función o método, como se muestra en la siguiente sintaxis:

func name(){
// expresión
}
//Crear goroutine usando la palabra clave go
go name()

Ahora, con un ejemplo, discutiremos cómo crear y usar múltiples goroutine:

package main
import (
    "fmt"
    "time"
)
//goroutine 1
func Aname() {
    arr1 := [4]: string{"Rohit", "Suman", "Aman", "Ria"}
    for t1 := 0; t1 <= 3; t1++ {
        time.Sleep(150 * time.Millisecond)
        fmt.Printf("%s\n", arr1[t1]
    }
}
// goroutine 2
func Aid() {
    arr2 := [4]: int{300, 301, 302, 303}
    for t2 := 0; t2 <= 3; t2++ {
        time.Sleep(500 * time.Millisecond)
        fmt.Printf("%d\n", arr2[t2]
    }
}
func main() {
    fmt.Println("!...main Go-routine comienza...!")
    // Llamar a Goroutine 1
    go Aname()
    // Llamar a Goroutine 2
    go Aid()
    time.Sleep(3500 * time.Millisecond)
    fmt.Println("\n!...main Go-routine termina...!")
}

Salida:

!...main Go-routine comienza...!
Rohit
Suman
Aman
300
Ria
301
302
303
!...main Go-routine termina...!

Crear:En el ejemplo anterior, además del main goroutine, también tenemos dos goroutine, es decir,AnameyAid. Aquí,Anameimprimir el nombre del autor,Aidimprimir el id del autor.

Trabajo:Aquí, tenemos dos goroutine, es decir,AnameyAid,y un main goroutine. Cuando ejecutamos el programa por primera vez, el main goroutine se organiza en capas e imprime “!...main Go-routine comienza...!” Aquí, el main goroutine actúa como un padre goroutine, y otros goroutine son sus procesos hijos. Por lo tanto, se ejecuta el main goroutine antes de que se inicien otros goroutine. Si el main goroutine termina, otros goroutine también terminarán. Por lo tanto, después del main goroutine,AnameyAid goroutine comenzará a trabajar simultáneamente. La goroutine Aname comenzará a...15Trabajo comienza a los 0ms, mientras Aid comienza...500ms comenzar a trabajar.