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 }
Golang goroutine return result when timeout
原文:https://www.cnblogs.com/GW977/p/11973454.html