Go Example--超时处理

Posted promenader

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go Example--超时处理相关的知识,希望对你有一定的参考价值。

package main

import (
    "fmt"
    "time"
)

func main() {
    c1 := make(chan string, 1)
    go func() {
        time.Sleep(time.Second * 2)
        c1 <- "result 1"
    }()

    select {
    case res := <-c1:
        fmt.Println(res)
        //延时器,当上个case超时执行这个case
    case <-time.After(time.Second * 1):
        fmt.Println("timeout 1")
    }

    c2 := make(chan string, 1)
    go func() {
        time.Sleep(time.Second * 2)
        c2 <- "result 2"
    }()

    select {
    case res := <-c2:
        fmt.Println(res)
    case <-time.After(time.Second * 3):
        fmt.Println("timeout 2")
    }
}

以上是关于Go Example--超时处理的主要内容,如果未能解决你的问题,请参考以下文章

Go by Example 中文练习

Go by Example 中文练习

Go——处理用户连接超时

Go语言12

go语言从例子开始之Example20.错误处理

每天遇到的零散知识汇聚