Golang 如何暂停当前Goroutine的执行
Goroutine是一个在程序中独立同时执行的函数或方法。换句话说,Go语言中所有并发执行的活动都被称为Goroutine。因此,在Go语言中,您可以使用 Sleep() 函数暂停当前Goroutine的执行。
这个函数至少暂停当前Goroutine指定的时间长度,完成指定的持续时间后,Goroutine会自动唤醒并恢复其工作。如果这个值是负数或零,那么这个函数会立即返回。它是在time包中定义的,因此您必须在程序中导入time包才能访问Sleep函数。
语法:
func Sleep(d_value Duration)
在这里, d_value 表示您要睡眠当前Goroutine的时间持续时间。可以是秒,毫秒,纳秒,微秒,分钟等。让我们通过下面的示例来讨论这个概念:
示例1:
//Go程序,演示如何使Goroutine睡眠
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() {
// 调用 Goroutine
go show("Hello")
// 调用函数
show("GeeksforGeeks")
}
输出:
Hello
GeeksforGeeks
GeeksforGeeks
Hello
Hello
GeeksforGeeks
GeeksforGeeks
示例2:
//Go程序,演示如何使Goroutine睡眠
package main
import (
"fmt"
"time"
)
// 这里Sleep函数的值为零
// 因此,这个函数立即返回。
func show(str string) {
for x := 0; x < 4; x++ {
time.Sleep(0 * time.Millisecond)
fmt.Println(str)
}
}
// 主函数
func main() {
// 调用 Goroutine
go show("Hello")
// 调用函数
show("Bye")
}
输出:
Bye
Bye
Bye
Bye