当前位置: 首页 > 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("执行完了")

在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • SysML图例-制药
  • 算法.图论-并查集上
  • 一款全看个人造化的Windows命令行软件下载安装管理器:Scoop
  • Revit学习记录-版本2018【持续补充】
  • python SQLAlchemy 数据库连接池
  • Robot Operating System——32 位浮点数表示的三维空间中一个点
  • 鸿蒙逐渐成为全球操作系统领域的重要一员
  • 为什么 Feign 要用 HTTP 而不是 RPC?
  • DEPLOT: One-shot visual language reasoning by plot-to-table translation论文阅读
  • 【车载以太网】【SOME/IP】Wireshark 解析
  • Google Gemini 与 OpenAI 激烈竞赛:语音 AI 与未来智能体的技术演进
  • 人工智能项目式综合实验教学平台,让教学实训更简单
  • CentOS5.2中安装并设置TFTP服务
  • 重修设计模式-概览
  • vmware官网下载
  • (三)从jvm层面了解线程的启动和停止
  • [数据结构]链表的实现在PHP中
  • crontab执行失败的多种原因
  • ES6--对象的扩展
  • IDEA常用插件整理
  • java B2B2C 源码多租户电子商城系统-Kafka基本使用介绍
  • Node 版本管理
  • React的组件模式
  • Redux 中间件分析
  • 对象管理器(defineProperty)学习笔记
  • 扑朔迷离的属性和特性【彻底弄清】
  • 前端之React实战:创建跨平台的项目架构
  • 通过npm或yarn自动生成vue组件
  • 限制Java线程池运行线程以及等待线程数量的策略
  • 追踪解析 FutureTask 源码
  • 如何正确理解,内页权重高于首页?
  • ​力扣解法汇总1802. 有界数组中指定下标处的最大值
  • #define 用法
  • #Linux(make工具和makefile文件以及makefile语法)
  • #进阶:轻量级ORM框架Dapper的使用教程与原理详解
  • (06)Hive——正则表达式
  • (13)DroneCAN 适配器节点(一)
  • (2022 CVPR) Unbiased Teacher v2
  • (a /b)*c的值
  • (day18) leetcode 204.计数质数
  • (PWM呼吸灯)合泰开发板HT66F2390-----点灯大师
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (附源码)spring boot车辆管理系统 毕业设计 031034
  • (附源码)ssm考试题库管理系统 毕业设计 069043
  • (转)使用VMware vSphere标准交换机设置网络连接
  • .md即markdown文件的基本常用编写语法
  • .NET CF命令行调试器MDbg入门(一)
  • .NET 反射的使用
  • .net 前台table如何加一列下拉框_如何用Word编辑参考文献
  • .net 中viewstate的原理和使用
  • .net6解除文件上传限制。Multipart body length limit 16384 exceeded
  • .net和jar包windows服务部署
  • .NET框架设计—常被忽视的C#设计技巧
  • .NET命名规范和开发约定
  • /etc/sudoer文件配置简析