ErrGroup-有错误返回的Goroutine控制

简介: ErrGroup-有错误返回的Goroutine控制
package main
import (
  "fmt"
  "time"
)
func main() {
  timeNow := time.Now()
  a := f1()
  b := f2()
  c := f3()
  fmt.Println("和为:", a+b+c)
  fmt.Println("耗时:", time.Since(timeNow))
}
func f1() int {
  time.Sleep(1e9)
  return 1
}
func f2() int {
  time.Sleep(1e9)
  return 2
}
func f3() int {
  time.Sleep(1e9)
  return 3
}

运行结果为:

和为: 6
耗时: 3.00640904s
package main
import (
  "fmt"
  "golang.org/x/sync/errgroup"
  "time"
)
func main() {
  var (
    g = &errgroup.Group{}
    a int
    b int
    c int
  )
  timeNow := time.Now()
  g.Go(func() error {
    a = f1()
    return nil
  })
  g.Go(func() error {
    b = f2()
    return nil
  })
  g.Go(func() error {
    c = f3()
    return nil
  })
  g.Wait()
  fmt.Println("和为:", a+b+c)
  fmt.Println("耗时:", time.Since(timeNow))
}
func f1() int {
  time.Sleep(1e9)
  return 1
}
func f2() int {
  time.Sleep(1e9)
  return 2
}
func f3() int {
  time.Sleep(1e9)
  return 3
}

运行结果为:

和为: 6
耗时: 1.003517107s
目录
相关文章
|
6月前
|
编解码 搜索推荐 开发者
《深度剖析:鸿蒙系统不同终端设备的UI自适应布局策略》
在万物互联时代,鸿蒙系统凭借分布式理念和技术架构,在智能终端领域迅速崛起。然而,如何实现应用在多设备上的完美UI布局成为关键挑战。本文探讨了鸿蒙UI自适应布局的重要性、技术原理及设计原则,包括灵活的布局组件(Row、Column、Flex)、尺寸单位适配(lpx)、媒体查询与断点机制,以及基于用户体验的设计方法。通过实践案例分析,展示了音乐应用在手机、平板和智能电视上的出色表现,并展望了未来智能化、个性化的布局趋势。掌握这些技术与原则,开发者将为用户带来更优质的跨设备体验,推动鸿蒙生态繁荣发展。
170 8
|
存储 负载均衡 NoSQL
MongoDB分片技术:实现水平扩展的利器
【4月更文挑战第30天】MongoDB的分片技术是应对数据增长和复杂业务需求的解决方案,它将数据水平拆分存储在多个实例上,实现数据库的水平扩展。分片带来水平扩展性、负载均衡、高可用性和灵活的数据管理。分片工作涉及mongos路由进程、config server和shard实例。设置分片包括部署配置服务器、添加分片、启动mongos、配置分片键和开始分片。选择合适的分片键和有效管理能确保系统性能和稳定性。
|
前端开发 安全 JavaScript
如何区分是前端BUG还是后端BUG
1 基于经验 前端BUG特点: (1)界面排版、布局错误、兼容性问题 (2)网络不稳定导致JS或CSS未完全加载或请求超时(一般不需要提BUG),正常网络下加载超时 后端BUG特点: 业务逻辑、性能问题、数据问题、安全性问题 2 通过HTTP请求和响应信息 可以通过浏览器开发者工具(F12)、postman、fiddler(移动端可通过该工具抓包)、Charles、Proxyman、Wireshark、HttpCanary、tcpdump等工具。
279 1
|
监控 小程序 安全
微信小程序使用GoEasy实现websocket实时通讯
手把手的教您用GoEasy在微信小程序里,最短的时间快速实现一个websocket即时通讯Demo。
|
前端开发 JavaScript 搜索推荐
JAVA带编辑器医院电子病历管理系统源码 springboot框架
Java电子病历系统技术说明 1、技术选型 :本电子病历系统采用前后端分离模式开发和部署。 2、前端技术:原生HTML、JS、CSS,Jquery、BootStrap、layui、Swf插件、Clipboard剪切板、 Echarts、PagedJS打印插件、Prince打印插件、Wkhtmltopdf打印插件等。 3.后端技术:SpringBoot框架、Mybatis-Plus、WebSocket、Stomp、Vintage-Engine页面解析模板引擎、 Thymeleaf页面解析模板引擎、Fileupload文件上传组件等。 4、数据库:MySQL数据库
503 0
JAVA带编辑器医院电子病历管理系统源码 springboot框架
|
存储 缓存 自然语言处理
【JAVA期末复习资源】包含重点知识、踩坑知识,期末复习看这一份就够了
【JAVA期末复习资源】包含重点知识、踩坑知识,期末复习看这一份就够了
682 0
【JAVA期末复习资源】包含重点知识、踩坑知识,期末复习看这一份就够了
|
XML Java 关系型数据库
Maven实战从入门到精通(全)
目录前言1. 安装及配置2. 核心概念 前言 了解Maven的具体概念、功能、具体执行步骤以及如何搭建等 Maven 具体功能: maven 是自动化构建工具,可以部署项目;管理jar文件,自动下载jar、文档和源代码;管理jar直接的依赖以及版本;编译程序,把java编译为class;测试代码是否正确;打包文件,形成jar文件或者war文件 具体构建步骤: 构建是面向过程,主要步骤是 清理:把之前项目编译的东西删除掉,为新的编译代码做准备。 编译: 把程序源代码编译为执行代码, 把java编译成clas
784 0
Maven实战从入门到精通(全)
|
存储 安全 数据安全/隐私保护
[RK3588]openmediavault 配置使用及测试步骤
openmediavault 配置使用及测试步骤
975 0
[RK3588]openmediavault 配置使用及测试步骤
|
传感器 编解码 人工智能
《达摩院2023十大科技趋势》——产业革新——计算光学成像
《达摩院2023十大科技趋势》——产业革新——计算光学成像
763 0
|
JavaScript 前端开发