diff --git a/oreilly/go.mod b/oreilly/go.mod deleted file mode 100644 index 2ab3c8a..0000000 --- a/oreilly/go.mod +++ /dev/null @@ -1,3 +0,0 @@ -module main.go - -go 1.25.4 diff --git a/oreilly/goroute b/oreilly/goroute deleted file mode 100755 index e72ee59..0000000 Binary files a/oreilly/goroute and /dev/null differ diff --git a/oreilly/main.go b/oreilly/main.go deleted file mode 100644 index 399dadd..0000000 --- a/oreilly/main.go +++ /dev/null @@ -1,51 +0,0 @@ -package main - -import ( - "fmt" - "os" - "strconv" - "sync" -) - -func go1(ch chan<- string, wg1 *sync.WaitGroup) { - defer wg1.Done() - for i := 1; i < 11; i++ { - ch <- "go1_" + strconv.Itoa(i) - } -} - -func go2(ch chan<- string, wg1 *sync.WaitGroup) { - defer wg1.Done() - for i := 1; i < 11; i++ { - ch <- "go2_" + strconv.Itoa(i) - } -} - -func Reader(ch <-chan string, wg *sync.WaitGroup) { - defer wg.Done() - for { - if v, ok := <-ch; !ok { - fmt.Println("Channel closed") - os.Exit(1) - } else { - fmt.Println(v) - } - } -} - -func main() { - var wg1 sync.WaitGroup - var wg sync.WaitGroup - wg.Add(1) - wg1.Add(2) - ch := make(chan string) - go go1(ch, &wg1) - go go2(ch, &wg1) - go Reader(ch, &wg) - - go func() { - wg1.Wait() - close(ch) - }() - wg.Wait() -}