前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Go-并发编程-创建 goroutine

Go-并发编程-创建 goroutine

原创
作者头像
堕落飞鸟
发布2023-04-21 13:42:25
1350
发布2023-04-21 13:42:25
举报
文章被收录于专栏:飞鸟的专栏

Go语言是一门天生支持并发编程的语言,其中最重要的特性之一就是goroutine(协程)。Goroutine是轻量级的执行线程,它由Go语言运行时系统管理,并由go关键字创建。

使用go关键字创建goroutine非常简单,只需要在函数或方法前面加上go关键字即可。例如:

代码语言:javascript
复制
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的示例:

代码语言:javascript
复制
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...”,然后才会看到数字序列。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档