首页 > 其他分享 >go errgroup用法

go errgroup用法

时间:2023-11-21 21:13:11浏览次数:33  
标签:return nil errgroup fmt 用法 go eg

草稿

errgroup就是在waitgroup基础上封装了一层。
我还是不喜欢 go的这个控制goroutine的方式。

只贴一下代码:

func main() {
	eg, ctx := errgroup.WithContext(context.Background())
	for i := 0; i < 10; i++ {
		i := i
		select {
		case <-ctx.Done():
			fmt.Printf("Task %v receive done!\n", i)
		default:
			eg.Go(func() error {
				if i > 5 {
					return fmt.Errorf()
				}
				fmt.Printf("Task %v yes!\n", i)
				return nil
			})
		}
	}


    // block util all methods return or income first non-nil error
	_ = eg.Wait()

}

标签:return,nil,errgroup,fmt,用法,go,eg
From: https://www.cnblogs.com/runninginsilence/p/17847608.html

相关文章

  • drf高级用法之——source
    source的用法(三种): 1.修改前端看到字段key的值(自定义key值)name="三国演义"#修改为book_name="三国演义" 使用代码书写:序列化类(serializer.BookSerializer)中书写:book_name=serializers.CharField(source='name') 2.修改前端看到的value值(同时也可以自......
  • Linux中的$符号的三种常见用法
    本文总结了Linux中的$符号的各种用法用法一:显示脚本参数($0、$?、$*、$@、$#、$$、$!)(本质上属于变量替换)$0:就是该bash文件名,个位数的,可直接使用数字,但两位数以上,则必须使用{}符号来括住,如${10}.$?:是上一指令的返回值,成功是0,不成功是1。一般来说,UNIX(linux)系统的进程以执行......
  • 【Django进阶】django-rest-framework中文文档——序列化器
    搭建环境使用django-rest-framework中文文档——快速入门中的虚拟环境。新建snippets应用程序python.\manage.pystartappsnippets注册相关应用程序,例如当前应用,rest_framework创建数据库模型编辑snippets/models.py文件fromdjango.dbimportmodelsfrompygments.le......
  • [Go] "Method Declaration" on a custom type
    packagedata//newtypetypedistancefloat64typedistanceKmfloat64//addToKmmethodtodistancetypefunc(milesdistance)ToKm()distanceKm{ //canworkascovertormethod returndistanceKm(miles*1.60934)}func(kmdistanceKm)ToMiles()dist......
  • django小练习
    新建Django项目django-admin.exestartprojectFirstDjangocdFirstDjangopythonmanage.pystartappweblist改setting里的配置"""Djangosettingsforwebproject.Generatedby'django-adminstartproject'usingDjango4.0.2.Formoreinfor......
  • extern关键字的用法
    extern关键字的理解extern是C/C++语言中的一个关键字,用于声明一个变量或函数具有外部链接性(externallinkage),即这些变量或函数可以被其他文件访问。在C/C++中,如果我们需要在不同的源文件中共享变量或函数,可以使用extern关键字来声明变量或函数。当我们在一个源文件中声明一个......
  • pb.go 转 proto 文件
    使用python将pb.go文件转为proto文件编程语言不限,挺简单的,不熟悉python的可以看看逻辑,自己改下importosimportre#处理字段选项defdispose_field_type(ft:str):ft=ft.replace("*","")if"[]"notinftand("int"inftor"string"in......
  • 商品购物管理与推荐系统Python+Django网页界面+协同过滤推荐算法
    一、介绍商品管理与推荐系统。本系统使用Python作为主要开发语言,前端采用HTML、CSS、BootStrap等技术搭建显示界面,后端采用Django框架处理用户的请求响应。创新点:使用协同过滤算法,以用户对商品的评分作为依据,在猜你喜欢界面中实现对当前登录用户的个性化推荐。主要功能有:系统......
  • Django自定义接口
    一、在有默认(create、list、retrieve、update、destroy)接口时自定义接口classIterationsViewSet(MyModelViewSet):queryset=uc_iterations.objects.all().order_by('id')serializer_class=IterationsSerializerpagination_class=DIYPagination#配置自定......
  • django连接mysql pycharm操作sqlite和mysql
    1如果项目使用sqlite,不需要额外配置,直接操作即可2django默认情况链接mysql,用的驱动是mysqldb模块,python3.x以后,这个模块用不了了,咱们用的全都是pymysql,需要做个替换3showmigrations:查看哪些记录更改了,但是没有同步到数据库中3如果使用mysql,需要配置如下: -1配置文件中配置......