Open In App

How to pause the execution of current Goroutine?

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

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. So in Go language, you are allowed to pause the execution of the current goroutine by using Sleep() function.
This function pauses the current goroutine for at least the specified duration, after completing the specified duration the goroutine wakes up automatically and resume its working. If the value of this function is negative or zero then this function return immediately. It is defined under the time package so, you have to import time package in your program for accessing Sleep function.

Syntax:

func Sleep(d_value Duration)

Here, d_value represents the time duration in which you want to sleep the current goroutine. It may be in Seconds, Milliseconds, Nanoseconds, Microseconds, Minutesm, etc. Let us discuss this concept with the help of the given examples:

Example 1:




// Go program to illustrate how
// to put a goroutine to sleep
package main
  
import (
    "fmt"
    "time"
)
  
func show(str string) {
  
    for x := 0; x < 4; x++ {
        time.Sleep(300 * time.Millisecond)
        fmt.Println(str)
    }
}
  
// Main Function
func main() {
  
    // Calling Goroutine
    go show("Hello")
  
    // Calling function
    show("GeeksforGeeks")
}


Output:

Hello
GeeksforGeeks
GeeksforGeeks
Hello
Hello
GeeksforGeeks
GeeksforGeeks

Example 2:




// Go program to illustrate how
// to put a goroutine to sleep
package main
  
import (
    "fmt"
    "time"
)
  
// Here, the value of Sleep function is zero
// So, this function return immediately.
func show(str string) {
  
    for x := 0; x < 4; x++ {
      
        time.Sleep(0 * time.Millisecond)
        fmt.Println(str)
    }
}
  
// Main Function
func main() {
  
    // Calling Goroutine
    go show("Hello")
  
    // Calling function
    show("Bye")
}


Output:

Bye
Bye
Bye
Bye


Last Updated : 28 Aug, 2019
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads