作者:Mars酱
声明:本文章由Mars酱编写,部分内容来源于网络,如有疑问请联系本人。
转载:欢迎转载,转载前先请联系我!
前言
当今编程界,一个好的编译型语言如果不支持并发,那必然不是一个好的程序员
goroutine
什么是goroutine?
goroutine是Go编程语言中的轻量级执行线程,也是与程序其余部分同时执行的函数。
与传统线程相比,Goroutines 非常轻量,因为创建 goroutine 的开销非常低。因此,它们在 Go 中广泛用于并发编程。
要将函数作为 goroutine使用,请使用关键字:go
好了,以上是官方对于goroutine的解释,那么我们再看看go关键字
go关键字
如果我们要使用goroutine,那么就在函数或者方法之前加上go关键字就可以了,比如:
go runGoroutine()
匿名函数也可以使用go关键字去执行,比如:
go func(){
// 做点啥 ...
}()
来个goroutine
我们写一个函数:
// author: mars酱
func helloGoroutine() {
fmt.Println("hello goroutine...")
}
然后我们去调用它:
// author: mars酱
func Test_goroutine2(t *testing.T) {
go helloGoroutine()
fmt.Println("你好,mars酱")
}
运行的结果:
正常运行!
首先执行了主函数中的中文输出,再执行了goroutine中的英文输出,那么,为什么?
为什么
因为go程序在创建goroutine的时候需要开销,而主函数也是一个goruntine,所以优先中文输出,再执行的新创建的goroutine。大家可以理解为异步,我来补个图:
将就着看吧,画图实在是不太行。