GO语言(七)多核并行化的问题

时间:2023-03-09 08:10:41
GO语言(七)多核并行化的问题
 package main

 import "fmt"

 type Vector []float64

 func (v Vector) DoSome(i,n int, u Vector, c chan float64) {
var sum float64
for ; i<n; i++ {
sum += u[i]
}
c <- sum
} const NCPU = func (v *Vector) DoAll(u Vector) {
c := make(chan float64, NCPU) //根据自己电脑的CPU产生对应个数的管道 for i:=; i<NCPU; i++ {
go v.DoSome(i*len(u)/NCPU, (i+)*len(u)/NCPU, u, c)
} var sum float64 = 0.00
for i:=; i<NCPU; i++ {
sum += <-c
}
fmt.Println(sum)
} func main() {
var v Vector
u := []float64{1.00, 2.00, 3.00, 4.00, 5.00, 6.00} v.DoAll(u)
}