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:
package main
import (
"fmt"
"time"
)
func show(str string) {
for x := 0; x < 4; x++ {
time .Sleep(300 * time .Millisecond)
fmt.Println(str)
}
}
func main() {
go show( "Hello" )
show( "GeeksforGeeks" )
}
|
Output:
Hello
GeeksforGeeks
GeeksforGeeks
Hello
Hello
GeeksforGeeks
GeeksforGeeks
Example 2:
package main
import (
"fmt"
"time"
)
func show(str string) {
for x := 0; x < 4; x++ {
time .Sleep(0 * time .Millisecond)
fmt.Println(str)
}
}
func main() {
go show( "Hello" )
show( "Bye" )
}
|
Output:
Bye
Bye
Bye
Bye
Last Updated :
28 Aug, 2019
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...