标签:const 400ms package sum API uint Go 多线程
//400ms
package main
import (
"fmt"
"time"
)
const SIZE uint = 4
const limit uint = 4e9
func sum(l uint, r uint, c chan uint) {
sum := uint(0)
for i := l; i <= r; i++ {
sum += i ^ limit
}
c <- sum
}
func main() {
start := time.Now()
var chans [SIZE]chan uint
for i := range chans {
chans[i] = make(chan uint)
}
var ans uint
const base uint = uint(limit / SIZE)
for i := uint(0); i < SIZE; i++ {
var l uint = i * base + 1
go sum(l, l + base, chans[i])
}
for i := uint(0); i < SIZE; i++ {
ans = ans + <- chans[i]
}
fmt.Println(ans)
fmt.Println("execute time", time.Since(start))
}
标签:const,400ms,package,sum,API,uint,Go,多线程 来源: https://www.cnblogs.com/attack204/p/16484606.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。