当前位置:网站首页>go基础之并发
go基础之并发
2022-08-11 09:47:00 【51CTO】
go并发非常简单,就是使用关键字go添加到任意一个函数前面,该函数就会成为一个goroutine。
最后time.Sleep(5 * time.Second)是为了阻止还没有执行完print()就结束程序,要不会还没有打印程序就结束了。
根据输出都是从0-10,好像并发没有什么作用,主要是print函数太快,所以看不出有什么区别。把print函数加些延迟效果就出来了
假如有这么一个需求,在2次print函数之后,还有个函数名字叫call(),这个call()函数需要在2次print函数执行后才能执行,这样如何写呢?
go语言sync包中提供了一个名叫等待组的机制,使用Add方法设置等待组的计数器,使用Done方法对等待组的计数器减1,调用Wait方法会一直阻塞,直到计数器为0才往后执行。
通过wg.Add(2)设置计数器为2,每次执行完print时,通过wg.Done()使计数器减1,wg.Wait()进行阻塞,2个print函数执行完,计数器变为0,往后执行call()。这样最后的一个等待时间就不再需要了。
边栏推荐
- Software custom development - the advantages of enterprise custom development of app software
- Typescript基本类型---上篇
- A few days ago, Xiaohui went to Guizhou
- Unity shader test execution time
- Quickly submit a PR (Web) for OpenHarmony in 5 minutes
- Primavera Unifier custom report creation and print sharing
- Adobe LiveCycle Designer report designer
- 【Prometheus】 Grafana数据与可视化
- SDUT 2877: angry_birds_again_and_again
- 工业检测深度学习方法综述
猜你喜欢

Primavera Unifier 高级公式使用分享

OAK-FFC系列产品上手指南

unity shader 测试执行时间

canvas图形操作(缩放、旋转、位移)

PowerMock for Systematic Explanation of Unit Testing

单元测试系统化讲解之PowerMock

Convolutional Neural Network Gradient Vanishing, The Concept of Gradient in Neural Networks

Contrastive Learning Series (3)-----SimCLR

Data middle platform program analysis and development direction

canvas图像阴影处理
随机推荐
Contrastive Learning Series (3)-----SimCLR
HStreamDB v0.9 released: Partition model extension, support for integration with external systems
软件定制开发——企业定制开发app软件的优势
模型训练出现NAN
2022-08-10:为了给刷题的同学一些奖励,力扣团队引入了一个弹簧游戏机, 游戏机由 N 个特殊弹簧排成一排,编号为 0 到 N-1, 初始有一个小球在编号
四级独创的阅读词汇表
1002 A+B for Polynomials
网络模型(U-net,U-net++, U-net+++)
Oacle数据库使用问题
VideoScribe stuck solution
训练一个神经网络要多久,神经网络训练时间过长
【无标题】超时超时超时超时超时
tar 命令使用
Segmentation Learning (loss and Evaluation)
华为WLAN技术:AC/AP 实验
Primavera Unifier -AEM 表单设计器要点
假设检验:正态性检验的那些bug——为什么对同一数据,normaltest和ktest会得到完全相反的结果?
Primavera P6 Professional 21.12 Login exception case sharing
网络模型(DeepLab, DeepLabv3)
TIOBE - 2022年8月编程语言排行