Goroutine 是一个函数或方法,它与程序中存在的任何其他 Goroutines 相关联地独立并同时执行。或者换句话说,Go 语言中每个并发执行的活动都称为 Goroutines。所以在 Go 语言中,你可以使用Sleep()函数来暂停当前 goroutine 的执行。
该函数将当前 goroutine 暂停至少指定的持续时间,在完成指定的持续时间后,goroutine 自动唤醒并恢复其工作。如果此函数的值为负数或零,则此函数立即返回。它定义在 time 包下,因此您必须在程序中导入 time 包才能访问 Sleep函数。
句法:
func Sleep(d_value Duration)
这里, d_value表示您希望让当前 goroutine 休眠的持续时间。它可能以秒、毫秒、纳秒、微秒、分钟等为单位。让我们在给定示例的帮助下讨论这个概念:
示例 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")
}
输出:
Hello
GeeksforGeeks
GeeksforGeeks
Hello
Hello
GeeksforGeeks
GeeksforGeeks
示例 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")
}
输出:
Bye
Bye
Bye
Bye