From cb314c36a91c7861a0256db4223864b9f11cc32b Mon Sep 17 00:00:00 2001 From: lbenedar Date: Sat, 21 Feb 2026 15:17:10 +0300 Subject: [PATCH] add ch12_2 --- ch12/2/ch12_2.go | 44 ++++++++++++++++++++++++++++++++++++++++++++ ch12/2/go.mod | 3 +++ 2 files changed, 47 insertions(+) create mode 100644 ch12/2/ch12_2.go create mode 100644 ch12/2/go.mod 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