这是我参与「第三届青训营 -后端场」笔记创作活动的的第1篇笔记
Go语言的基本介绍
Go言介绍
Go语言(也叫Golang)起源于2007年,Google公司在2009年正式对外发布。Go语言是非常年轻的一门语言,主要目标是兼具Python等动态语言的开发速度和 C/C++ 等编译型语言的性能与安全性。
Go语言的基本特点
- 高性能和高并发
- 学习语法简单、学习曲线平缓
- 丰富的标准库(通常被称为语言自带的电池)
- 完善的工具链
- 静态链接
- 快速编译
- 跨平台
- 垃圾回收
重点了解学习高并发,学习高并发就不得不提并行。通过比较并发和并行来学习Go语言的特点。
并发(Concurrent)
在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,并发是针对单核 CPU 提出的。
并行(Parallel)
当系统有一个以上CPU时,当一个CPU执行一个进程时,另一个CPU可以执行另一个进程,两个进程互不抢占CPU资源,可以同时进行,这种方式我们称之为并行。
总结:
简而言之:
并发,指的是多个事情,在同一时间段内同时发生了。
并行,指的是多个事情,在同一时间点上同时发生了。
执行任务的数量恰好等于 CPU 核心的数量,是一种理想状态。 但是在实际场景中,处于运行状态的任务是非常多的,尤其是电脑和手机,开机就几十个任务,而 CPU 往往只有 4 核、8 核或者 16 核,远低于任务的数量,这个时候就会同时存在并发和并行两种情况:所有核心都要并行工作,并且每个核心还要并发工作。 只有在多CPU的情况中,才会发生并行。否则,看似同时发生的事情,其实都是并发执行的。