首页后端开发GOGo-并发编程-创建 goroutine

Go-并发编程-创建 goroutine

时间2023-04-27 07:27:02发布访客分类GO浏览1554
导读:Go语言是一门天生支持并发编程的语言,其中最重要的特性之一就是goroutine(协程)。Goroutine是轻量级的执行线程,它由Go语言运行时系统管理,并由go关键字创建。使用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

若转载请注明出处: Go-并发编程-创建 goroutine
本文地址: https://pptw.com/jishu/9987.html
Go-并发编程-无缓冲和有缓冲 channel 的区别(一) Go-并发编程-goroutine 和 channel(一)

游客 回复需填写必要信息