1. 程式人生 > >Golang之wait.Until 簡單測試用例

Golang之wait.Until 簡單測試用例

go routines wait.Until

測試目的,驗證wait.Until的用法
//測試wait.Until() 的用途
package main

import (
    "fmt"
    "k8s.io/apimachinery/pkg/util/wait"
    "time"
)

type stop struct {
}

func main() {
    stopCh := make(chan struct{})
    //初始化一個計數器
    i := 0
    go wait.Until(func() {
        fmt.Printf("----%d----\n", i)

        i++
    }, time.Second, stopCh)

    time.Sleep(time.Second * 10)

    stopCh <- stop{}
    // 下面的形式,也是可以的
    //stopCh < struct {
    //}{}

    fmt.Println("---上面的go routines 結束----")

    // 主程序,再休息3秒鐘,再結束
    time.Sleep(time.Second * 3)

    fmt.Println("---主程序結束----")
}

總結:

就是啟動一個協程,每隔一定的時間,就去運行聲明的匿名函數,直到接收到結束信號 就關閉這個協程

Golang之wait.Until 簡單測試用例