Go-并发编程-创建 goroutine
Go语言是一门天生支持并发编程的语言,其中最重要的特性之一就是goroutine(协程)。Goroutine是轻量级的执行线程,它由Go语言运行时系统管理,并由go关键字创建。
使用go关键字创建goroutine非常简单,只需要在函数或方法前面加上go关键字即可。例如:
func hello() {
fmt.Println("Hello")
}
func main() {
go hello()
fmt.Println("World")
}
在上面的示例中,我们定义了一个hello函数,它会打印出“Hello”。然后,在主函数中,我们使用go关键字启动了一个hello函数的goroutine,并打印出“World”。
由于hello函数的goroutine是并发运行的,因此它和主函数是同时运行的。在主函数中,我们先打印了“World”,然后才启动了hello函数的goroutine。因此,在输出中,“World”会先打印出来,而“Hello”会在其后面打印出来。
以下是另一个使用go关键字创建goroutine的示例:
func printNumbers() {
for i := 1;
i = 10;
i++ {
fmt.Print(i, " ")
}
}
func main() {
go printNumbers()
fmt.Println("Waiting for goroutine to finish...")
time.Sleep(time.Second)
}
在上面的示例中,我们定义了一个printNumbers函数,它会打印出1到10的数字。然后,在主函数中,我们使用go关键字启动了一个printNumbers函数的goroutine,并打印出“Waiting for goroutine to finish...”。为了确保goroutine有足够的时间打印所有数字,我们使用time.Sleep函数暂停了1秒钟。
由于printNumbers函数的goroutine是并发运行的,因此它和主函数是同时运行的。在主函数中,我们先打印了“Waiting for goroutine to finish...”,然后才启动了printNumbers函数的goroutine。因此,在输出中,我们会先看到“Waiting for goroutine to finish...”,然后才会看到数字序列。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Go-并发编程-创建 goroutine
本文地址: https://pptw.com/jishu/9987.html