diff --git a/ch12/2/ch12_2.go b/ch12/2/ch12_2.go new file mode 100644 index 0000000..937bdb5 --- /dev/null +++ b/ch12/2/ch12_2.go @@ -0,0 +1,44 @@ +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() +} diff --git a/ch12/2/go.mod b/ch12/2/go.mod new file mode 100644 index 0000000..e50c3d4 --- /dev/null +++ b/ch12/2/go.mod @@ -0,0 +1,3 @@ +module gitea.local.lab/Lbenedar/learning_go/ch12/2 + +go 1.25.0