forked from steger/pr3-ws202627
42 lines
742 B
Go
42 lines
742 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"math/rand"
|
|
"time"
|
|
)
|
|
|
|
func main() {
|
|
|
|
ch1 := make(chan string)
|
|
ch2 := make(chan string)
|
|
|
|
go func() {
|
|
time.Sleep(time.Duration(rand.Intn(5)+1) * time.Second)
|
|
ch1 <- "Message from channel 1"
|
|
}()
|
|
|
|
go func() {
|
|
time.Sleep(time.Duration(rand.Intn(5)+1) * time.Second)
|
|
ch2 <- "Message from channel 2"
|
|
}()
|
|
|
|
count := 10
|
|
var channels []chan string
|
|
for i := range count {
|
|
ch := make(chan string)
|
|
channels = append(channels, ch)
|
|
go func() {
|
|
time.Sleep(time.Duration(rand.Intn(5)+1) * time.Second)
|
|
ch <- fmt.Sprintln("Message from Channel %d", i)
|
|
}()
|
|
}
|
|
|
|
fanIn := make(chan string, count)
|
|
for i := range count {
|
|
go func() { fanIn <- <-channels[i] }()
|
|
}
|
|
println("Recieved: ", <-fanIn)
|
|
|
|
}
|