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