time.After()---select-case小测试一例

来源:互联网 发布:关于护肤的软件 编辑:程序博客网 时间:2024/06/15 12:48

time.After()—select-case小测试一例

func main(){    timeout := 10 * time.Second  //Duration类型    var after <-chan time.Time   //声明变量    after = time.After(timeout)  //timeout时间后返回一个time.Time类型通道,此处不会阻塞    fmt.Println("now time=",time.Now())    num := make(chan int )    select {    case s, ok := <-num:        if ok{            fmt.Println(s)        }    case <-after:        fmt.Println("after")    default:                    //若没有default会一直阻塞,一直到有任何一个chan有io才会往下执行        fmt.Println("default")    }    fmt.Println("test2")}

输出结果

select中有default的时候输出now time= 2017-08-04 11:41:58.365915 +0800 CSTdefaulttest2select中没有default的时候输出now time= 2017-08-04 11:42:54.0376779 +0800 CST  等待10秒后//等待10秒后aftertest2
原创粉丝点击