/*
程序描述:探索golang中goroutine的用法
*/
```go
package main
import (
"fmt"
"time"
)
func saySomething(str string) {
for i := 0; i<5; i++ {
time.Sleep(time.Millisecond * 1000)
fmt.Println(str)
}
}
func main() {
// 启动一个goroutine线程
go saySomething("Hello")
saySomething("World")
}
```
/*
关于这段代码的输出有很多问题,下面先问一个比较重要的问题
?:为什么此时的输出结果少了一个"Hello"
*/
更多评论
主进程结束后,子进程也跟着结束了。这段代码中应该是最后一次打印的时间是出现在主进程结束后的,所以没打印是正常的。这个文档里面有详细的说明
https://talks.golang.org/2012/concurrency.slide#1
#2