ssa: select

This commit is contained in:
visualfc
2024-07-07 06:22:46 +08:00
parent bdcbd9008d
commit 8e256a2d5d
4 changed files with 151 additions and 0 deletions

45
cl/_testgo/select/in.go Normal file
View File

@@ -0,0 +1,45 @@
package main
func main() {
send()
recv()
}
func send() {
ch1 := make(chan int)
ch2 := make(chan int)
go func() {
println(<-ch1)
}()
go func() {
println(<-ch2)
}()
select {
case ch1 <- 100:
case ch2 <- 200:
}
}
func recv() {
c1 := make(chan string)
c2 := make(chan string)
go func() {
c1 <- "ch1"
}()
go func() {
c2 <- "ch2"
}()
for i := 0; i < 2; i++ {
select {
case msg1 := <-c1:
println(msg1)
case msg2 := <-c2:
println(msg2)
default:
println("exit")
}
}
}