Go语言编程从入门到精通(使用Gotouine解决并发难题)

互联网 2022/1/14 14:05:55

Go (或Golang )是Google 在2007 年开发的一种开源编程语言,出自Robert Griesemer 、Rob Pike 和Ken Thompson 之手。2009 年11 月10 日, Google Open Source Blog 向全球发布了这款语言:公告指出Go 的主要目标是“兼具Python 等动态语句的开发速度和C 或C ++等编译…

Go (或Golang )是Google 在2007 年开发的一种开源编程语言,出自Robert Griesemer 、Rob Pike 和Ken Thompson 之手。2009 年11 月10 日, Google Open Source Blog 向全球发布了这款语言:公告指出Go 的主要目标是“兼具Python 等动态语句的开发速度和C 或C ++等编译型语言的性能与安全性”。

使用Goroutine

Goroutine可以应对网络延迟,通常操作是顺讯自上而下依次执行,但在复杂的环境下,顺序执行反而会出现各种各样的问题。例如,你需要获取全国各地的天气情况,在执行这种请求时候,可能受到网络的影响,不能及时响应,并且每个请求后响应的时间也不尽相同,这个时候就需要等待响应,让程序去做其他的请求,减少了等待的时长,提高了执行的效率。

就像你可以边听歌、边走路一样,而不必先听歌,歌停了,再走路。

举个例子:

Go语言编程从入门到精通(使用Gotouine解决并发难题)

可以看到,顺序执行下去,执行2个动作,花费了8秒。

有没有一个可能,边听歌,边走路呢?这样就能大大节约时间了呢?

将上面的例子进行下改动

Go语言编程从入门到精通(使用Gotouine解决并发难题)

20行:添加了go关键字

21行:添加了go关键字

22行:设置了等待时间,这个等待时间是为了阻止程序退出

通过上面的简单改动,“开始听歌”和“开始走路”就是同步开始,而“停止走路”先停止,“停止听歌”接着停止,全部花费时间5秒,这样就大大减少了操作的时间。

虽然采用time.sleep来阻止程序立即退出并不是最好的方法,将在后面的学习中学习采用通道来管理Goroutine。

开发人员在使用Goroutine无需直接管理线程,并且创建1个Gotoutine所消耗的内存只有几KB,因此,采用Goroutine解决并发是一个行之有效的方法。

随时随地学软件编程-关注百度小程序和微信小程序
关于找一找教程网

本站文章仅代表作者观点,不代表本站立场,所有文章非营利性免费分享。
本站提供了软件编程、网站开发技术、服务器运维、人工智能等等IT技术文章,希望广大程序员努力学习,让我们用科技改变世界。
[Go语言编程从入门到精通(使用Gotouine解决并发难题)]http://www.zyiz.net/tech/detail-285054.html

赞(0)
关注微信小程序
程序员编程王-随时随地学编程

扫描二维码或查找【程序员编程王】

可以随时随地学编程啦!

技术文章导航 更多>
扫一扫关注最新编程教程