《Go实战》第一章学习心得(1)|Go主题月

258 阅读1分钟

Go语言优势是什么?

1,编译快

以前编译java项目的时候,有些大型项目,依赖比较多的情况下,起个项目可能要花上几分钟甚至10几分钟,导致开发测试都以此为借口摸鱼划水。现在Go编译逻辑就是只引用依赖的库,不对所有的库进行遍历,编译效率大大提升,换言之,Go语言的程序员很苦逼。

2,并发性能好

随着大量互联网,云计算,大量访问量项目不断流行,一个产品体验好坏,很直观反应就是响应快慢。go里面的goroutine占用内存资源比线程小,内置有一种通道数据结构,可以通过通道对不同goroutine进行交互。goroutine可以和其他goroutine并行执行的。在其他编程语言,会用一个线程来执行任务,在go语言会用一个线程来控制多个goroutine来执行任务。

比如一个人想去食堂吃饭,可以先叫个号,然后去找个位置玩手机,代码入下

func eat(){ ... }

func play(){ ... }

main(){

go eat();

go play;

... }

表示eat方法和play方法并行同时执行的。

通道就是goroutine之间交互,如果 A goroutine 在排位进餐,B goroutine在外面玩手机刷短视频, A可以通过通道给B发信息说到我们了,可以坐进来了,开饭了,这个场景大家再生活经常遇到。

要注意的是,在A知道可以进餐的消息时,B是无法获知的,意思是什么,就是A和B有屏蔽,需要通过指定方法进行同步。