How to pause the execution of current Goroutine?
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
Please Login to comment...