Go 快速入门指南 - 超时控制

概述

利用 channel (通道)time.After() 方法实现超时控制。

例子

package main

import (
    "fmt"
    "time"
)

func main() {
    ch := make(chan bool)

    go func() {
        defer func() {
            ch <- true
        }()

        time.Sleep(2 * time.Second) // 模拟超时操作
    }()

    select {
    case <-ch:
        fmt.Println("ok")
    case <-time.After(time.Second):
        fmt.Println("timeout!")
    }
}

// $ go run main.go
// 输出如下
/**
  timeout!
*/

联系我

你可能感兴趣的:(go)