English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Una goroutine è una funzione o un metodo che può essere eseguita indipendentemente e contemporaneamente con qualsiasi altra goroutine esistente nel programma. In altre parole, ogni attività eseguita contemporaneamente in Go si chiama goroutine. In Go, è possibile creare più goroutine in un programma. Puoi semplicemente creare una goroutine aggiungendo la parola chiave go come prefisso di chiamata di funzione o metodo, come mostrato nella seguente sintassi:
func name(){ //istruzione } //utilizzo della parola chiave go per creare una goroutine go name()
Ora, con un esempio, discutiamo come creare e utilizzare più 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("!...Goroutine principale inizia...!") // Chiamata Goroutine 1 go Aname() // Chiamata Goroutine 2 go Aid() time.Sleep(3500 * time.Millisecond) fmt.Println("\n!...Goroutine principale finisce...!") }
Output:
!...Goroutine principale inizia...! Rohit Suman Aman 300 Ria 301 302 303 !...Goroutine principale finisce...!
Creazione:Nell'esempio sopra, oltre al goroutine principale, abbiamo due goroutine, ovveroAnameeAid. Qui,AnameStampa il nome dell'autore,AidStampa l'id dell'autore.
Lavoro:qui, abbiamo due goroutine, ovveroAnameeAid,e un goroutine principale. Quando eseguiamo per la prima volta il programma, il goroutine principale si stratifica e stampa “!...Goroutine principale Go inizia...!” Qui, il goroutine principale è come un goroutine padre, altri goroutine sono i suoi processi figli, quindi si esegue prima il goroutine principale e poi si avvia altri goroutine. Se il goroutine principale termina, altri goroutine terminano anche. Pertanto, dopo il goroutine principale,AnameeAid Il goroutine inizieranno contemporaneamente. Il goroutine Aname inizierà a lavorare a 150ms, mentre Aid a 500ms.