golang
Golang的多线程
原文链接:https://ovea-y.cn/golang_mutli_gorountine_simple/ Golang的线程和其他的语言不太相同,它的并行设计从语言成面上就进行了支持。 Go的线程核心是goroutine,它是用户态实现的线程,因此多个goroutine可以运行在一个实际线程之上。goroutine是通过Go的runtime管理的一个线程管理器,通过go这个关键词就可以启动一个runtime。 package main import ( "fmt" "sync" "runtime" ) // ### 此处的写法是错误的,wg传递的是副本而不是指针,因此Done不会对外面的WaitGroup有任何作用。 // func say(s string, wg sync.WaitGroup) { // for i := 0; i < 3; i++ { // // 让出CPU时间片 // runtime.Gosched() // // 输出字符 // fmt.