In Go, the select statement lets a goroutine wait on multiple communication operations. It operates much like a special switch statement for concurrent operations.

select {
case c <- x:
	func()
default:
	func2()
}