golang tutorial - Golang Select | Select In Golang - golang - go programming language - google go - go language - go program - google language



Golang Select

  • Go’s select enable you to wait on multiple channel operations.
  • Combining goroutines and channels with select is a powerful feature of Go Language
package main

import "time"
import "fmt"

	func main() {
// For our example we’ll select across two channels.
	    c1 := make(chan string)
    c2 := make(chan string)
// Each channel will receive a value after some amount of time, to simulate e.g. blocking RPC operations executing in concurrent goroutines.
	    go func() {
        time.Sleep(time.Second * 1)
        c1 <- "one"
    }()
    go func() {
        time.Sleep(time.Second * 2)
        c2 <- "two"
    }()
// We’ll use select to await both of these values simultaneously, printing each one as it arrives.
	    for i := 0; i < 2; i++ {
        select {
        case msg1 := <-c1:
            fmt.Println("received", msg1)
        case msg2 := <-c2:
            fmt.Println("received", msg2)
        }
    }
}
click below button to copy the code. By - golang tutorial - team
golang , gopro , google go , golang tutorial , google language , go language , go programming language

Output for the above go language program

//We receive the values "one" and then "two" as expected.
	$ time go run select.go 
received one
received two
Note that the total execution time is only ~2 seconds since both the 1 and 2 second Sleeps execute concurrently.
	real	0m2.245s

Related Searches to Select In Golang