add changes to ch12_1
This commit is contained in:
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
*.exe
|
||||
39
ch12/1/ch12_1.go
Normal file
39
ch12/1/ch12_1.go
Normal file
@@ -0,0 +1,39 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"math/rand"
|
||||
)
|
||||
|
||||
func PrintNumbers() {
|
||||
const IN_CHAN_NUM = 2
|
||||
numCh := make(chan int, 20)
|
||||
completeCh := make(chan int)
|
||||
defer close(numCh)
|
||||
defer close(completeCh)
|
||||
for i := 0; i < IN_CHAN_NUM; i++ {
|
||||
go func() {
|
||||
for j := 0; j < 10; j++ {
|
||||
numCh <- (rand.Int() % 100)
|
||||
}
|
||||
}()
|
||||
}
|
||||
go func() {
|
||||
i := 0
|
||||
for num := range numCh {
|
||||
fmt.Println(num)
|
||||
i++
|
||||
if i == 20 {
|
||||
break
|
||||
}
|
||||
}
|
||||
completeCh <- 1
|
||||
}()
|
||||
select {
|
||||
case <-completeCh:
|
||||
}
|
||||
}
|
||||
|
||||
func main() {
|
||||
PrintNumbers()
|
||||
}
|
||||
Reference in New Issue
Block a user