Go语言-协程
第 14 章 go 协程
Go 语言的 协程(Groutine) 是与其他函数或方法一起并发运行的工作方式。协程可以看作是轻量级线程。与线程相比,创建一个协程的成本很小。因此在 Go 应用中,常常会看到会有很多协程并发地运行。
14.1 启动一个 go 协程
调用函数或者方法时,如果在前面加上关键字 go
,就可以让一个新的 Go 协程并发地运行。
1 | // 定义一个函数 |
下面是启动一个协程的例子, go PrintInfo()
, PrintInfo()
函数与 main()
函数会并发执行,主函数运行在一个特殊的协程上,这个协程称之为 主协程(Main Goroutine) 。
启动一个新的协程时,协程的调用会立即返回。与函数不同,程序控制不会去等待 Go 协程执行完毕。在调用 Go 协程之后,程序控制会立即返回到代码的下一行,忽略该协程的任何返回值。如果 Go 主协程终止,则程序终止,于是其他 Go 协程也会终止。为了让新的协程能继续运行,我们在 main()
函数添加了 time.Sleep(1 * time.Second)
使主协程休眠 1 秒,但这种做法并不推荐,这里只是为了演示而添加。
1 | package main |
14.2 启动多个 Go 协程
通过下面的例子,可以观察到两个协程就如两个线程一样,并发执行:
1 | package main |
如何学习Go语言微服务,快速步入架构师


添加微信 | 公众号更多内容 |
---|---|
![]() |
![]() |
本博客所发布的内容,部分内容来源于网络,版权归原作者所有,如有侵权,请联系删除。转载请注明来自 面向加薪学习!