关于go: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!
*/

分割我

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理