package main
import (
"fmt"
"time"
)
func main() {
a := make(chan bool)
timeout := make(chan bool)
go func(isRun chan bool) {
time.Sleep(time.Second * 10)
isRun <- true
}(a)
go func(isRun chan bool) {
time.Sleep(time.Second * 5)
isRun <- true
}(timeout)
select {
case <-a:
fmt.Println("run a")
case <-timeout:
fmt.Println("time out")
}
}
package main
import (
"fmt"
"time"
)
func main() {
messages := make(chan string, 2)
go func(isRun chan string) {
time.Sleep(time.Second * 3)
isRun <- "Tom"
}(messages)
messages <- "hello"
select {
case msg := <-messages:
fmt.Println("received message:", msg)
default:
fmt.Println("no message received")
}
}