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

Manuale di base di Golang

Istruzioni di controllo di Golang

Funzione & Metodo di Golang

Struttura di Golang

Tagli & Array di Golang

Stringhe (String) di Golang

Puntatori di Golang

Interfaccia di Golang

Concordanza di Golang

Eccezioni (Error) di Golang

Articoli vari di Golang

Goroutine multipli del linguaggio Go

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.