package main
import("fmt""time")var S int//全局变量,用来存放累加值funcSum(a int, b int){
Num :=0for; a <= b; a++{
Num += a
}
S += Num
}funcmain(){for i :=1; i <1000001;{//分成10个goroutine实现累加goSum(i, i+99999)
i +=100000}
fmt.Println("this is a main goroutine")
time.Sleep(time.Second)
fmt.Println("1到100w累加结果为:", S)}
方法二代码:
package main
import("fmt""sync""time")var S int//全局变量funcmain(){var mux sync.Mutex
for i :=1; i <1000001;{gofunc(a int, b int){
mux.Lock()
Num :=0for; a <= b; a++{
Num += a
}
S = Num
mux.Lock()}(i, i+9999)
i +=100000}
fmt.Println("this is a main goroutine")
time.Sleep(time.Second)
fmt.Println("1到100w累加结果为:", S)}