Go语言学习笔记(一) | 青训营笔记

167 阅读2分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的的第1篇笔记

Go语言的基本介绍

Go言介绍

Go语言(也叫Golang)起源于2007年,Google公司在2009年正式对外发布。Go语言是非常年轻的一门语言,主要目标是兼具Python等动态语言的开发速度和 C/C++ 等编译型语言的性能与安全性。

Go语言的基本特点

  1. 高性能和高并发
  2. 学习语法简单、学习曲线平缓
  3. 丰富的标准库(通常被称为语言自带的电池)
  4. 完善的工具链
  5. 静态链接
  6. 快速编译
  7. 跨平台
  8. 垃圾回收

重点了解学习高并发,学习高并发就不得不提并行。通过比较并发和并行来学习Go语言的特点。

并发(Concurrent)

在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,并发是针对单核 CPU 提出的。

并行(Parallel)

当系统有一个以上CPU时,当一个CPU执行一个进程时,另一个CPU可以执行另一个进程,两个进程互不抢占CPU资源,可以同时进行,这种方式我们称之为并行。

总结:

简而言之:

并发,指的是多个事情,在同一时间段内同时发生了。

并行,指的是多个事情,在同一时间点上同时发生了。

执行任务的数量恰好等于 CPU 核心的数量,是一种理想状态。 但是在实际场景中,处于运行状态的任务是非常多的,尤其是电脑和手机,开机就几十个任务,而 CPU 往往只有 4 核、8 核或者 16 核,远低于任务的数量,这个时候就会同时存在并发和并行两种情况:所有核心都要并行工作,并且每个核心还要并发工作。 只有在多CPU的情况中,才会发生并行。否则,看似同时发生的事情,其实都是并发执行的