不器小窝 不器小窝
首页
随笔
  • GoLang
  • 前端

    • Vue
    • VuePress
  • 开发工具
  • 系统工具
读吧
  • ToDb (opens new window)
  • goKit (opens new window)
  • 友情链接
  • 免费信息
  • 时间线
  • 关于
GitHub (opens new window)

不器

知行合一
首页
随笔
  • GoLang
  • 前端

    • Vue
    • VuePress
  • 开发工具
  • 系统工具
读吧
  • ToDb (opens new window)
  • goKit (opens new window)
  • 友情链接
  • 免费信息
  • 时间线
  • 关于
GitHub (opens new window)
  • GoLang

    • GoLang 安装
    • Go经验
    • 错误集合
    • 基础库

      • flag
      • json
      • log
      • net/http
      • os
      • sync
        • sync包简介
        • sync.WaitGroup{}
      • path
    • 第三方库

    • Fyne

    • Wails

    • GoFrame

  • Dart

  • Markdown

  • 语言
  • GoLang
  • 基础库
不器
2022-06-07
目录

sync

# sync包简介

sync包提供了基本的同步基元,如互斥锁。除了Once和WaitGroup类型,大部分都是适用于低水平程序线程,高水平的同步使用channel通信更好一些。

本包的类型的值不应被拷贝。

# sync.WaitGroup{}

WaitGroup用于等待一组线程的结束。父线程调用Add方法来设定应等待的线程的数量。每个被等待的线程在结束时应调用Done方法。同时,主线程里可以调用Wait方法阻塞至所有线程结束。

var wg sync.WaitGroup
var urls = []string{
    "http://www.golang.org/",
    "http://www.google.com/",
    "http://www.somestupidname.com/",
}
for _, url := range urls {
    // 增加WaitGroup计数器
    wg.Add(1)
    // 启动goroutine来获取URL
    go func(url string) {
        // 当goroutine例程完成时减少计数器
        defer wg.Done()
        // 获取URL
        http.Get(url)
    }(url)
}
// 等待所有HTTP取回完成
wg.Wait()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#GoLang#基础库#sync
更新时间: 2023/1/30 23:35:37
os
path

← os path→

最近更新
01
Vue-pure-Admin基础
03-16
02
WebStorm工具使用手册
03-15
03
Windows
03-12
更多文章>
Theme by Vdoing | Copyright © 2022-2023 不器 | 小窝
sitemap icon by Icons8
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式