go语言多线程入入门笔记-基础

首先go语言号称新时代的C语言,大家可以想像这句话的含义。

下载go语言要注意平台和硬件架构,比如linux-AMD64,你能看懂吗?

go语言里面默认文件夹的含义比较多,如下,这里就不再赘述了,大家可以去看《Go并发编程实战 第2版》,这份笔记就是本人学习这本书的记录。

go语言多线程入入门笔记-基础_第1张图片

需要注意,go语言不建议直接在src文件夹里放自己的代码,原因自己去脑补。

go build和go install是常用命令,你知道它们分别是干什么的吗?

感觉go语言在import上与python有异曲同工之处,也许大师们的思路都是一样的吧。

来一段代码,如下:

go语言多线程入入门笔记-基础_第2张图片

go语言的赋值是不是很偷懒?一直认为,节约时间,就是节约生命。还有就是nil这种写法,之前太习惯写null了。

学习一门语言,个人最喜欢的方式是一边修改程序,一边学习,感觉这是最快的方式,不过也有很多人喜欢慢慢琢磨。本书的作者似乎跟我有点像。

go语言还有切片类型,也是数组的一种,这里就不详述了,这种只能用到的时候才能知道了。

没想到这本书里把并发编程讲的如此简单易懂,推荐没有并发编程基础的朋友好好研读一下。

go语言多线程入入门笔记-基础_第3张图片

用户态和内核态的概念很重要,CPU默认是用户态,与我之前的理所当然的思路有点不同。当然内核态和用户态可以进行互相转换,一切都在操作系统的掌握之中。

有一个新概念,竞态条件(race condition),解决多个进程访问同一资源的问题。

另一个概念也做了说明,互斥(mutual exculsion),保证只有一个进程或线程在临界区之内。

管道,是单向的,很重要。

信号,SIG开头的,这一节读的比较快,想看看后面的socket,以后再来详细读。

socket,在go语言中也是封装过的,很好用,如下:

go语言多线程入入门笔记-基础_第4张图片

上个通讯的结果图,大家能猜出代码是怎么写的吗?

go语言多线程入入门笔记-基础_第5张图片

不早了,今天就到这里吧,以后有时间继续看书,请大家耐心等待。。。

你可能感兴趣的:(运维)