七叶笔记 » golang编程 » Go语言编程从入门到精通(使用Gotouine解决并发难题)

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

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

使用Goroutine

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

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

举个例子:

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

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

将上面的例子进行下改动

20行:添加了go关键字

21行:添加了go关键字

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

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

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

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

相关文章