Files
learning_go/ch12/2/ch12_2.go
2026-02-21 15:17:10 +03:00

45 lines
657 B
Go

package main
import (
"fmt"
"math/rand"
)
func PrintNumbers() {
const chNum = 2
firstCh := make(chan int, 10)
secondCh := make(chan int, 20)
defer close(firstCh)
defer close(secondCh)
go func() {
for j := 0; j < 10; j++ {
firstCh <- (rand.Int() % 100)
}
}()
go func() {
for j := 0; j < 10; j++ {
secondCh <- (rand.Int() % 100)
}
}()
i := 0
forLoop:
for {
select {
case val1 := <-firstCh:
fmt.Printf("(%d) From first channel: %d\n", i+1, val1)
case val2 := <-secondCh:
fmt.Printf("(%d) From second channel: %d\n", i+1, val2)
}
i++
if i == chNum*10 {
break forLoop
}
}
}
func main() {
PrintNumbers()
}