Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

Gray-Ice

个人博客兼个人网站

逻辑是先给一个变量加上将要运行的goroutine的数量,然后goroutine在运行结束时把数量减一。主线程会一直等待直到这个变量的值为0。
那么代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package main

import (
"fmt"
"sync"
)

var wg sync.WaitGroup

func fun(wg *sync.WaitGroup, num int) {
// 在程序运行完毕后执行wg.Done()
defer wg.Done()
fmt.Println(num)
}

func main() {
wg.Add(2)
go fun(&wg, 1)
go fun(&wg, 2)
wg.Wait()
}

输出(这个好像没有什么意义):

1
2
3
» go run main.go                                                                zero@DESKTOP-IECQH72
2
1

评论



愿火焰指引你