Go语言sync库和WaitGroup的使用

// code_041_sync_WaitGroup project main.go
package main

import (
    "fmt"
    "sync"
)

func main() {
    fmt.Println("Hello World!")
    var wg sync.WaitGroup
    wg.Add(2)
    go func() {
        defer wg.Done()
        for i := 0; i < 10000; i++ {
            fmt.Printf("Hello,Go.This is %d\n", i)
        }
    }()
    go func() {
        defer wg.Done()
        for i := 0; i < 10000; i++ {
            fmt.Printf("Hello, world.This is %d\n", i)
        }
    }()
    wg.Wait()
}

sync.WaitGroup是一个计数的信号量,使main函数所在主线程等待两个goroutine执行完成后再结束,否则两个goroutine还在运行时,主线程已经结束。
sync.WaitGroup使用非常简单,使用Add方法设设置计数器为2,每一个goroutine的函数执行完后,调用Done方法减1。Wait方法表示如果计数器大于0,就会阻塞,main函数会一直等待2个goroutine完成再结束。

我们提供的服务有:网站设计制作、成都做网站、微信公众号开发、网站优化、网站认证、龙潭ssl等。为近千家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的龙潭网站制作公司


本文名称:Go语言sync库和WaitGroup的使用
网页地址:http://bzwzjz.com/article/gpddje.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 成都网站设计 成都网站制作 四川成都网站设计 网站制作报价 成都营销网站制作 成都网站建设公司 成都网站制作 成都网站建设 定制网站制作 公司网站建设 定制网站设计 成都网站制作 成都网站制作 app网站建设 营销网站建设 成都网站建设公司 企业手机网站建设 成都网站建设公司 成都网站建设 成都网站建设 重庆企业网站建设 重庆网站建设