Go 设置并发控制数量 【go并发模型】

embedded/2024/10/23 8:13:35/

背景:go的并发控制也是老生常谈,在公司业务中也是经常出现

谈谈我们这次并发模型的适用场景:要处理的任务很多比如有10000个,没开并发的时候我们要一个一个进行执行这个时候其实无论是cpu压力还是数据库和redis压力都比较小也就是说它们现在还很闲,我们可以给它们加并发压榨cpu和数据库的工作效率

限制:理论上讲并发数小于任务数,总不能1000个任务开2000个并发,首先就像1000个馒头让2000个人去吃一样撤,其次是开2000个并发如果任务比较重那数据库也受不了报警

我给出的并发模型的可以通过修改channel的容量来控制并发数

接下来看代码

package mainimport ("fmt""sync""time"
)func main() {GNUM := 100 //携程并发数ch := make(chan struct{}, GNUM)wg := sync.WaitGroup{}start := time.Now().Second() //记录开始时间for i := 1; i <= 1000; i++ {ch <- struct{}{}wg.Add(1)go func(i int) {defer func() {fmt.Printf("task%d执行完毕\n", i)<-chwg.Done()}()fmt.Printf("执行task%d   \n", i)time.Sleep(1 * time.Second)}(i)}wg.Wait()close(ch)end := time.Now().Second()                       //记录结束时间fmt.Printf("并发数:%d 时 花费时间为:%d", GNUM, end-start) //输出处理任务的总时间 单位S}

这个代码假设是每个任务执行时间是1秒如果我们不开并发执行1000个任务是1000秒但如果我们开100个并发只需要10秒 1000个并发只需要1秒 10个并发小于10秒

 


http://www.ppmy.cn/embedded/129768.html

相关文章

如何看待AI技术的应用前景?

人工智能&#xff1a;引领未来的变革力量 在当今快速变化的科技时代&#xff0c;人工智能&#xff08;AI&#xff09;作为一项前沿技术&#xff0c;已然成为推动全球各行各业变革的核心驱动力。随着人工智能技术的不断发展&#xff0c;其广泛的应用前景和深远的影响力&#xf…

兰迪·舍克曼担任生命银行链(LBC)顾问,赋能基因数据区块链技术发展

兰迪舍克曼&#xff08;Randy Schekman&#xff09;作为生命银行链&#xff08;Life Bank Chain, LBC&#xff09;的顾问参与其中&#xff0c;这无疑是个令人兴奋的消息&#xff01;他在生理医学和基因研究方面拥有深厚的专业知识&#xff0c;必将对LBC的使命&#xff0c;即安全…

【Unity】Unity Shader学习笔记(八)基础纹理2:高度纹理、法线纹理、模型空间下的法线纹理、切线空间下的法线纹理光照计算

文章目录 凹凸映射法线纹理设置高度纹理&#xff08;Height Map&#xff09;法线纹理&#xff08;Normal Map&#xff09;模型空间的法线纹理切线空间的法线纹理优劣对比 切线空间下的法线纹理光照计算最终效果完整代码TANGENT语义内置宏 TANGENT_SPACE_ROTATIONObjSpaceLightD…

世优科技AI数字人180+面部控制参数,雕琢智能体精准表达

目前&#xff0c;企业对于高效、精准、个性化的商业接待需求日益增长。世优波塔以卓越的技术实力和创新的产品能力&#xff0c;在 AI 数字人智能体领域进行了诸多探索与应用&#xff0c;为企业带来全新的商业接待能力。 世优波塔的 AI 智能体数字人在交互表现已领先行业。通过对…

美国fda橙皮书数据库查询方法

众所周知&#xff0c;美国FDA最有名的书就属橙皮书了&#xff0c;是一个做化药绕不过去且非常实用的数据库。对我而言&#xff0c;橙皮书最最最大的作用是可以帮助我快速判断化合物专利&#xff0c;当然&#xff0c;其它提供的药品申请、参比制剂信息也非常有用。下面笔者来介绍…

【动手学深度学习】7.5 批量规范化(个人向笔记)

训练深层神经网络是十分困难的&#xff0c;特别是在较短的时间内使它们收敛更加棘手。而本节的批量规范化&#xff08;batch normalization&#xff09; 可以持续加速深层网络的收敛速度结合下节会介绍道德残差块&#xff0c;批量规范化使得研究人员能够训练100层以上的网络 1.…

Java基于微信小程序的公考学习平台的设计与实现,附源码+文档

博主介绍&#xff1a;✌Java老徐、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&…

数据仓库构建的两种方法:自上向下、自下向上

一、数据仓库基本介绍 数据来源&#xff1a;数据仓库的数据来源多样&#xff0c;它是数据处理、转换和加载到数据库的中央存储&#xff0c;能够让使用者轻易从数据仓库获取数据&#xff0c;并且借助商业智能和分析工具&#xff0c;将数据用于分析和决策制定。 数据仓库运行工…