go routine example channels example 1
This commit is contained in:
parent
9e917844ff
commit
7bf7c19c99
2 changed files with 30 additions and 0 deletions
17
channels/demo1.go
Normal file
17
channels/demo1.go
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
package channels
|
||||||
|
|
||||||
|
func EvenNumber(EvenNumberCn chan int) {
|
||||||
|
total := 0
|
||||||
|
for i := 0; i <= 10; i+=2 {
|
||||||
|
total = total + i
|
||||||
|
}
|
||||||
|
EvenNumberCn <- total
|
||||||
|
}
|
||||||
|
|
||||||
|
func OddNumber(OddNumberCn chan int) {
|
||||||
|
total := 0
|
||||||
|
for i := 1; i <= 10; i+=2 {
|
||||||
|
total = total + 1
|
||||||
|
}
|
||||||
|
OddNumberCn <- total
|
||||||
|
}
|
13
main.go
13
main.go
|
@ -3,6 +3,7 @@ package main
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"golesson/arrays"
|
"golesson/arrays"
|
||||||
|
"golesson/channels"
|
||||||
"golesson/conditionals"
|
"golesson/conditionals"
|
||||||
"golesson/examplerange"
|
"golesson/examplerange"
|
||||||
"golesson/functions"
|
"golesson/functions"
|
||||||
|
@ -62,4 +63,16 @@ func main() {
|
||||||
go goroutines.OddNumber()
|
go goroutines.OddNumber()
|
||||||
time.Sleep(5 * time.Second)
|
time.Sleep(5 * time.Second)
|
||||||
fmt.Println("Main ended")
|
fmt.Println("Main ended")
|
||||||
|
|
||||||
|
EvenNumberCn := make(chan int)
|
||||||
|
OddNumberCn := make(chan int)
|
||||||
|
|
||||||
|
go channels.EvenNumber(EvenNumberCn)
|
||||||
|
go channels.OddNumber(OddNumberCn)
|
||||||
|
|
||||||
|
EvenNumberTotal, OddNumberTotal := <- EvenNumberCn, <- OddNumberCn
|
||||||
|
|
||||||
|
multiply := EvenNumberTotal * OddNumberTotal
|
||||||
|
|
||||||
|
fmt.Println("Multiply Result : ", multiply)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue