Golang time.AfterFunc() 函数及示例

Golang time.AfterFunc() 函数及示例

Go 语言中,time 包提供了确定和显示时间的功能。AfterFunc() 函数在 Go 语言中用于等待时间间隔结束之后,在其自己的 Go 协程中调用定义的函数“f” 。此外,该函数定义在 time 包下。在此,您需要导入 “time” 包才能使用这些函数。

语法:

func AfterFunc(d Duration, f func()) *Timer

这里,*Timer 是指向计时器的指针。

返回值:它返回计时器,然后使用它的 Stop() 方法来取消调用。

示例1:

// 演示 AfterFunc() 函数的 Golang 程序
  
// 包含主要函数
package main
  
// 导入 fmt 和 time 包
import (
    "fmt"
    "time"
)
  
// 主函数
func main() {
  
    // 对 AfterFunc() 方法进行时间参数的定义
    DurationOfTime := time.Duration(3) * time.Second
  
    // 对 AfterFunc() 方法进行函数参数的定义
    f := func() {
  
        // 当 AfterFunc() 方法在上述时间内调用时,将打印
        fmt.Println("Function called by "+
            "AfterFunc() after 3 seconds")
    }
  
    // 使用其参数调用 AfterFunc() 方法
    Timer1 := time.AfterFunc(DurationOfTime, f)
  
    // 使用 Timer1 调用 stop 方法
    defer Timer1.Stop()
  
    // 调用 sleep 方法
    time.Sleep(10 * time.Second)
} 

输出:

Function called by AfterFunc() after 3 seconds

在这里,输出在 3 秒后返回,然后返回的计时器使用 Stop() 方法取消调用。然后,在睡眠结束的持续时间后,程序退出。

示例2:

// 演示 AfterFunc() 函数的 Golang 程序
  
// 包含主要函数
package main
  
// 导入 fmt 和 time 包
import (
    "fmt"
    "time"
)
  
// 主函数
func main() {
  
    // 使用 make 关键字创建渠道
    mychan := make(chan int)
  
    // 使用其参数调用 AfterFunc() 方法
    time.AfterFunc(6*time.Second, func() {
  
        // 在过去的一段时间后打印
        fmt.Println("6 seconds over....")
  
        // 循环在此时停止
        mychan <- 30
    })
  
    // 调用 for 循环
    for {
  
        // select 语句
        select {
  
        // case 语句
        case n := <-mychan:
  
            // 循环停止后打印
            fmt.Println(n, "is arriving")
            fmt.Println("Done!")
            return
  
        // 默认返回
        default:
  
            // 打印直到循环停止
            fmt.Println("time to wait")
  
            // 等待 3 秒钟
            time.Sleep(3 * time.Second)
        }
    }
} 

输出:

time to wait
time to wait
6 seconds over....
30 is arriving
Done!

在上面的示例中,在经过一定的时间后,通道返回其输出然后程序退出。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程