go语言中go+select的理解

// select在go语言协程里面是有阻塞select后面继续运行的代码作用,但是当select的case获取到数据之后,协程里面的代码是不会停止的,他还是会继续运行的
package main import( "fmt" "time" ) func main(){ fmt.Println("超时设置") var ch chan string go func() { time.Sleep(time.Second*3) fmt.Println("dasfsdfaf") //这里还是会运行的 }() select { case res := <-ch: fmt.Println(res) return case <-time.After(time.Second * 2): //即使时间过了2秒之后,协程里面的代码还是会运行到 time.Sleep(time.Second*3) fmt.Println("timeout") } }

 

猜你喜欢

转载自www.cnblogs.com/MyUniverse/p/11234984.html