import "fmt"
func test(){
fmt.Println("hello")
sum := 0
for i := 0; i <= 100; i++{
sum += i
}
fmt.Println(sum)
}
/*这里不计算最后一个数字*/
func count(start int, end int, ch chan int) {
fmt.Println(start, end)
sum := 0
for j := start; j < end; j++{
sum += j
}
ch <- sum
}
func main(){
h := 100
group := 10
sum := 0
ch := make(chan int, 10)
/*这里分组*/
for i := 0; i < group; i++{
num := h / group
go count(num*i, num*i+num, ch)
}
for i := 0; i < group; i++{
select{
case msg := <- ch:
sum += msg
}
}
fmt.Println(sum + h)//最后加上最大数
}
本文展示了一个使用Go语言编写的简单程序示例,通过goroutine实现并行计算任务,并利用通道进行goroutine间的通信与同步。该程序将1到100之间的整数分组计算总和,同时演示了如何在主goroutine中等待所有子goroutine完成计算。
1604

被折叠的 条评论
为什么被折叠?



