当前位置: 首页 > news >正文

go多线程

1、简单使用(这个执行完成,如果进程执行比较久,这里不会等待它们结束)

package mainimport "time"func main() {go func() {println("Hello, World!")}()time.Sleep(1 * time.Second)
}

2、wg.Add(数量)使用,这个会等待,直到全部完成

func main() {wg := sync.WaitGroup{}for i := 0; i < 10; i++ {wg.Add(1)go calc(&wg, i)}wg.Wait()fmt.Println("all goroutine finish")
}
func calc(w *sync.WaitGroup, i int) {fmt.Println("calc:", i)time.Sleep(time.Second)w.Done()
}
传值localI := i,不能直接使用i,会重复,因为你在下次使用可能i已改变
var wg sync.WaitGroup
numGoroutines := 100
wg.Add(numGoroutines) //100个
for i := 0; i < numGoroutines; i++ {localI := igo func() {fmt.Println("Value:", localI)fmt.Println("大得")wg.Done() //减1,直到全部减完,结束}()
}
wg.Wait()
fmt.Println("执行完了")

在这里插入图片描述

http://www.lryc.cn/news/440391.html

相关文章:

  • 【话题】如何看待IBM中国研发部裁员?
  • 【C/C++】涉及string类的经典OJ编程题
  • 淘系等电商平台API接口系列:商品详情数据解析,json数据返回参考
  • vue组件之间的数据共享
  • LangChain:构建强大的LLM应用的全方位框架
  • 自有平台自有品牌如何利用电商API接口做定价参考(多平台商品详情数据接口)
  • 三万字长文Java面试题——基础篇(注:该篇博客将会一直维护 最新维护时间:2024年9月18日)
  • 数学建模——熵权+TOPSIS+肘部法则+系统聚类
  • Java | Leetcode Java题解之第403题青蛙过河
  • 828华为云征文|华为Flexus云服务器搭建OnlyOffice私有化在线办公套件
  • [Java]maven从入门到进阶
  • Leetcode面试经典150题-130.被围绕的区域
  • Ruffle 继续在开源软件中支持 Adobe Flash Player
  • 【postgres】笔记
  • #if等命令的学习
  • 【有啥问啥】深入浅出马尔可夫链蒙特卡罗(Markov Chain Monte Carlo, MCMC)算法
  • java企业办公自动化OA
  • 【leetcode】树形结构习题
  • 在ros2中安装gazebo遇到报错
  • VMware vSphere 8.0 Update 3b 发布下载,新增功能概览
  • 在设计开发中,如何提高网站的用户体验?
  • 油耳拿什么清理比较好?好用的无线可视挖耳勺推荐
  • 永久配置清华源,告别下载龟速
  • 什么是数据库回表,又该如何避免
  • UE5中使用UTexture2D进行纹理绘制
  • Matlab simulink建模与仿真 第十六章(用户定义函数库)
  • 每天练打字2:今日状况——完成击键5第1遍,赛文速度74.71
  • 给新人的python笔记(一)
  • 如何实现异步并发限制
  • 孙怡带你深度学习(2)--PyTorch框架认识