• Declare
select {
    case <- ch:
        ...
    case x := <- ch2:
        ...
    case ch3 <- y:
        ...
    default:
        ...
}
  • Select wait until some case is ready to proceed
  • Select with no case, wait forever
select {}

Here is example, please notice if more than 1 channel can be process, Go will pick one to process randomly

Tags:

Updated: