[agent-go] 开始使用GO重构Agent部分
This commit is contained in:
37
server-go/test/channelTest.go
Normal file
37
server-go/test/channelTest.go
Normal file
@@ -0,0 +1,37 @@
|
||||
package main
|
||||
|
||||
import "fmt"
|
||||
|
||||
func sum(start, end uint64, result chan uint64) {
|
||||
var sum uint64 = 0
|
||||
for i := start; i <= end; i++ {
|
||||
sum += i
|
||||
}
|
||||
result <- sum
|
||||
}
|
||||
|
||||
func main() {
|
||||
const n uint64 = 5000000000
|
||||
var numCPU int = 4
|
||||
|
||||
result := make(chan uint64, numCPU)
|
||||
|
||||
var chunkSize uint64 = n / uint64(numCPU)
|
||||
|
||||
var start uint64 = 1
|
||||
var end uint64 = chunkSize
|
||||
|
||||
for i := 0; i < numCPU; i++ {
|
||||
go sum(start, end, result)
|
||||
start = end + 1
|
||||
end += chunkSize
|
||||
}
|
||||
|
||||
var total uint64 = 0
|
||||
for i := 0; i < numCPU; i++ {
|
||||
partialSum := <-result
|
||||
total += partialSum
|
||||
}
|
||||
|
||||
fmt.Println(total)
|
||||
}
|
||||
Reference in New Issue
Block a user