mirror of
https://gitee.com/shikong-sk/golang-study
synced 2025-05-23 02:18:07 +08:00
43 lines
509 B
Go
43 lines
509 B
Go
|
package main
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
"runtime"
|
||
|
"sync"
|
||
|
)
|
||
|
|
||
|
var wg = new(sync.WaitGroup)
|
||
|
|
||
|
func a() {
|
||
|
defer func() {
|
||
|
wg.Done()
|
||
|
}()
|
||
|
|
||
|
for i := 0; i < 10; i++ {
|
||
|
fmt.Printf("A: %d\n", i)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func b() {
|
||
|
defer func() {
|
||
|
wg.Done()
|
||
|
}()
|
||
|
|
||
|
for i := 0; i < 10; i++ {
|
||
|
fmt.Printf("B: %d\n", i)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func main() {
|
||
|
// goroutine 初始栈大小为2k
|
||
|
|
||
|
// 设置 最大 线程数
|
||
|
// 默认为 CPU 线程数
|
||
|
// 线程过多会增加 上下文切换负担
|
||
|
runtime.GOMAXPROCS(1)
|
||
|
wg.Add(2)
|
||
|
go a()
|
||
|
go b()
|
||
|
wg.Wait()
|
||
|
}
|