脚本宝典收集整理的这篇文章主要介绍了Golang 的 Goroutine,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
package main
import (
"fmt"
"runtime"
"sync"
)
func main() {
//设置golang的逻辑处理器为 1
runtime.GOMAXPROCS(1)
//使用计数信号量 设置需要运行的goroutine 如果设置的信号量没有全部执行完成,那么主程序会阻塞
var wg sync.WaitGroup
wg.Add(2) //这里是两个 对应下面的go func 的匿名函数
fmt.Println("Start Goroutines")
//声明匿名函数,并创建一个goroutine
go func() {
defer wg.Done() //使用关键defer 在程序执行完成后执行WaitGroup减1
//打印三次小写字母
for count := 0; count < 3; count++ {
for char := 'a'; char < 'a'+26; char++ {
fmt.Printf("%c ",char)
}
}
}()
go func() {
defer wg.Done()
//打印三次大写字母
for count := 0; count < 3; count++ {
for char := 'A'; char < 'A'+26; char++ {
fmt.Printf("%c ",char)
}
}
}()
//等待goroutine结束
fmt.Println("Waiting To Finish...")
wg.Wait() //这里会阻塞主程序退出,否则goroutine执行未结束的时候主程序会直接退出
fmt.Println("Terminating Program")
}
D:GOstudydemo30>go run main.go
Start Goroutines
Waiting To Finish...
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z a b c d e f g h i j k l m n o p q r s t u v w x y z a b c d e f g h i j k l m n o p q r s t u v w x y z Terminating Program
以上是脚本宝典为你收集整理的Golang 的 Goroutine全部内容,希望文章能够帮你解决Golang 的 Goroutine所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。