Golang 如何暂停当前Goroutine的执行

Golang 如何暂停当前Goroutine的执行

Goroutine是一个在程序中独立同时执行的函数或方法。换句话说,Go语言中所有并发执行的活动都被称为Goroutine。因此,在Go语言中,您可以使用 Sleep() 函数暂停当前Goroutine的执行。

这个函数至少暂停当前Goroutine指定的时间长度,完成指定的持续时间后,Goroutine会自动唤醒并恢复其工作。如果这个值是负数或零,那么这个函数会立即返回。它是在time包中定义的,因此您必须在程序中导入time包才能访问Sleep函数。

语法:

func Sleep(d_value Duration)
Go

在这里, 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")
} 
Go

输出:

Hello
GeeksforGeeks
GeeksforGeeks
Hello
Hello
GeeksforGeeks
GeeksforGeeks
Go

示例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")
} 
Go

输出:

Bye
Bye
Bye
Bye
Go

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册