Golang goroutine return result when timeout

note..

1. example based on channel

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
}

 

Guess you like

Origin www.cnblogs.com/GW977/p/11973454.html