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