39 lines
624 B
Go
39 lines
624 B
Go
package main
|
|
|
|
import "fmt"
|
|
|
|
func read_from_c(c chan int, b chan int) {
|
|
for item := range c {
|
|
fmt.Printf("%d", item)
|
|
number_multiplied := item * item
|
|
b <- number_multiplied
|
|
}
|
|
close(b)
|
|
}
|
|
|
|
func read_from_b(b chan int) {
|
|
for item := range b {
|
|
fmt.Printf("%d", item)
|
|
}
|
|
}
|
|
|
|
func main() {
|
|
fmt.Println("main() started")
|
|
c := make(chan int)
|
|
b := make(chan int)
|
|
|
|
fmt.Println("Operation started")
|
|
go func() {
|
|
fmt.Println("Running writer")
|
|
for i := 1; i < 10; i++ {
|
|
fmt.Printf("Adding %v to channel c", i)
|
|
c <- i
|
|
}
|
|
close(c)
|
|
}()
|
|
|
|
go read_from_c(c, b)
|
|
for item := range b {
|
|
fmt.Printf("%d", item)
|
|
}
|
|
}
|