29 lines
365 B
Markdown
29 lines
365 B
Markdown
|
# Golang Chan 超时
|
||
|
|
||
|
```go
|
||
|
package main
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
"time"
|
||
|
)
|
||
|
|
||
|
var ch chan int = make(chan int, 1)
|
||
|
|
||
|
func main() {
|
||
|
go aaa()
|
||
|
|
||
|
select {
|
||
|
case <-ch: //拿到锁
|
||
|
fmt.Println("call")
|
||
|
case <-time.After(5 * time.Second): //超时5s
|
||
|
fmt.Println("5 sec call")
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func aaa() {
|
||
|
time.Sleep(time.Second * 3)
|
||
|
ch <- 1
|
||
|
}
|
||
|
```
|