从零学习 Go 语言(16):理解 Go 语言中的协程 goroutine
文章自公众号:Go编程时光
《Go编程时光》,一个能带你学习 Go 语言的专栏,同时欢迎搜索我的同名公众号,时间获取Go语言干货。
说到Go语言,很多没接触过它的人,对它的印象,一定是它从语言层面天生支持并发,非常方便,让开发者能快速写出高性能且易于理解的程序。
在 Python (为Py为例,主要是我比较熟悉,其他主流编程语言也类似)中,并发编程的门槛并不低,你要学习多进程,多线程,还要掌握各种支持并发的库 asyncio,aiohttp 等,同时你还要清楚它们之间的区别及优缺点,懂得在不同的场景选择不同的并发模式。
而 Golang 作为一门现代化的编程语言,它不需要你直面这些复杂的问题。在 Golang 里,你不需要学习如何创建进程池/线程池,也不需要知道什么情况下使用多线程,什么时候使用多进程。因为你没得选,也不需要选,它原生提供的 goroutine (也即协程)已经足够,能够自动帮你处理好所有的事情,而你要做的只是执行它,就这么简单。
一个 goroutine 本身就是一个函数,当你直接调用时,它就是一个普通函数,如果你在调用前加一个关键字 go
,那你就开启了一个 goroutine。
// 执行一个函数
func()
// 开启一个协程执行这个函数
go func()
相关文章