The example in this article describes the use of the Go language pipe channel. Share to everyone for your reference. The specific analysis is as follows:
Channel is a type of pipe that can be sent or received by the channel operator <-.
CH <-V//V will be fed to channel Ch.
V: = <-ch//received from CH, and assigned to V.
(the arrow is the direction of the data flow.) )
As with map and slice, channel must be created before use:
CH: = make (chan int)
By default, both send and receive will block until the other end is ready. This allows the goroutine to synchronize without an explicit lock or a race-state variable.
Copy Code code as follows:
Package Main
Import "FMT"
Func sum (a []int, C Chan int) {
Sum: = 0
For _, V: = Range a {
sum = V
}
C <-sum/send sum to C
}
Func Main () {
A: = []int{7, 2, 8,-9, 4, 0}
c: = make (chan int)
Go sum (A[:len (a)/2], C)
Go sum (A[len (a)/2:], C)
X, Y: = <-c, <-c//Receive from C
Fmt. Println (x, y, x + y)
}
I hope this article will help you with your go language program.