Open In App

Multiple Goroutines

Improve
Improve
Improve
Like Article
Like
Save Article
Save
Share
Report issue
Report

Prerequisite: Multiple Goroutines A Goroutine is a function or method which executes independently and simultaneously in connection with any other Goroutines present in your program. Or in other words, every concurrently executing activity in Go language is known as a Goroutines. In Go language, you are allowed to create multiple goroutines in a single program. You can create a goroutine simply by using go keyword as a prefixing to the function or method call as shown in the below syntax:

func name(){

// statements
}

// using go keyword as the 
// prefix of your function call
go name()

Now we discuss how to create and work on multiple goroutines with the help of an example: 

Go




// Go program to illustrate Multiple Goroutines
package main
 
import (
    "fmt"
    "time"
)
 
// For 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])
    }
}
 
// For 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])
    }
}
 
// Main function
func main() {
 
    fmt.Println("!...Main Go-routine Start...!")
 
    // calling Goroutine 1
    go Aname()
 
    // calling Goroutine 2
    go Aid()
 
    time.Sleep(3500 * time.Millisecond)
    fmt.Println("\n!...Main Go-routine End...!")
}


Output:

!...Main Go-routine Start...!
Rohit
Suman
Aman
300
Ria
301
302
303

!...Main Go-routine End...!

Creation: In the above example, we have two goroutines other than main goroutine, i.e, Aname, and Aid. Here, Aname prints the name of the authors and Aid prints the id of the authors. Working: Here, we have two goroutines, i.e, Aname, and Aid and one main goroutine. When we run this program first the main goroutine start and print “!…Main Go-routine Start…!”, here the main goroutine is like a parent and other goroutines are its children so first main goroutine run after that those other goroutines start and if the main goroutine terminates, then other goroutines are also terminated. So, after the main goroutine, Aname and Aid goroutines start their working concurrently. The Aname goroutine starts it working from 150ms and Aid start its working from 500ms as shown in the below image:



Last Updated : 06 Sep, 2022
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads