博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
main函数中如何等待协程运行完毕
阅读量:4503 次
发布时间:2019-06-08

本文共 597 字,大约阅读时间需要 1 分钟。

使用channel同步

package mainimport (    "fmt")func printNumber(num int, c chan struct{}) {  fmt.Println(num)  c <- struct{}{}}func main() {  sign := make(chan struct{}, 10)  for i:=0;i<10;i++ {    go printNumber(i, sign)  }  for i:=0;i<10;i++{    <-sign  }  fmt.Println("Done.")}

使用sync.WaitGroup

package mainimport (    "fmt"    "sync")func printNumber(num int, callback func()) {  fmt.Println(num)  callback()}func main() {  var wg sync.WaitGroup  wg.Add(10)  for i:=0;i<10;i++ {    go printNumber(i, wg.Done)  }  wg.Wait()  fmt.Println("Done.")}

转载于:https://www.cnblogs.com/linyihai/p/10465950.html

你可能感兴趣的文章
python 学习之 函数参数和内置函数
查看>>
leetcode 1108
查看>>
PHP底层的运行机制与原理
查看>>
ERP笔记3-数据库的版本化
查看>>
绑定元素属性改变不通知界面
查看>>
C#中使用反射获取结构体实例
查看>>
Spring bean的作用域和生命周期
查看>>
ado.net增删改查练习
查看>>
恩格尔系数
查看>>
纪检委,检察院的工资
查看>>
20135213 20135231 信息安全系统设计基础课程第一次实验报告
查看>>
BZOJ1419——Red is good(期望dp)
查看>>
Linux系统扩容根目录磁盘空间
查看>>
Java架构师书单
查看>>
二阶段冲刺第一天
查看>>
ArrayList删除特定元素的方法
查看>>
android 开发 View _15 导入一张图片将它裁剪成圆形 与 paint图层叠加处理详解
查看>>
地图大集合
查看>>
unity资源(移动版)提取 一点尝试
查看>>
简谈游戏场景灯光配置方案
查看>>