Golang goroutine return result when timeout

note..spa

1. example based on channelcode

func shouldAbort(timeout time.Duration, ch chan<- bool) {
    time.Sleep(timeout)
    ch <- true
}

func TestMethod() bool {
    ch := make(chan bool, 1)
    go shouldAbort(time.Second, ch)
    time.AfterFunc(2*time.Second, func() {
        fmt.Println("???")
        ch <- false
    })
    return <-ch
}
相關文章
相關標籤/搜索