31 lines
396 B
Go
31 lines
396 B
Go
package main
|
|
|
|
func main() {
|
|
c1 := make(chan struct{}, 1)
|
|
c2 := make(chan struct{}, 1)
|
|
c3 := make(chan struct{}, 1)
|
|
c4 := make(chan struct{}, 1)
|
|
|
|
go func() {
|
|
<-c1
|
|
println("<-c1")
|
|
|
|
select {
|
|
case c2 <- struct{}{}:
|
|
println("c2<-")
|
|
case <-c3:
|
|
println("<-c3")
|
|
}
|
|
}()
|
|
|
|
c1 <- struct{}{}
|
|
println("c1<-")
|
|
|
|
select {
|
|
case <-c2:
|
|
println("<-c2")
|
|
case <-c4:
|
|
println("<-c4")
|
|
}
|
|
}
|