从操作系统的角度看 Go 的并发编程 | 青训营笔记

62 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 2 天。

概览

本堂课的知识要点可以分为四个部分。

  • 语言进阶。从并发编程的视角带大家了解Go高性能的本质,也让我感受到平时所学计算机基础学科如操作系统的重要性。
  • 依赖管理。了解Go语言依赖管理的演进路线。
  • 测试。从单元测试实践出发,提升大家的质量意识。
  • 项目实战。通过一个发帖、回帖的小案例,从项目需求、需求拆解、逻辑设计、代码实现带领大家感受真实的项目开发。

知识点介绍

下面列举一些我比较感兴趣的点。

并发编程

作为 Java 选手的我,之前已经或多或少听说过,接触过 JVM、并发编程这些概念,所以接触到Go的并发编程并不感到陌生。

回到 Go 语言本身,就如名字一样——快!那么 Go 语言是如何做到这一点的呢?这就要涉及到操作系统的概念了。Go 可以充分发挥多核优势,高效运行

(咳咳,什么是多核?)就拿我们平时使用的电脑举例,现在基本上都是多核的,打开任务管理器一看便知。

image.png

我们可以观察到两个字——内核。(内核又是什么?)首先看上面的那张图,内核是CPU里面的信息,可见内核对于计算机的重要性。从操作系统的角度来看,内核是计算机配置的底层软件,是操作系统最基本、最核心的部分。

我们平时写的程序要跑起来,内部和线程是分不开的。

多线程程序可以分时间片在一个核的CPU运行,这叫做并发,也可以在多个核的CPU运行,这叫并行。而Go的高效就在于,可以充分发挥多核优势,高效运行。

image.png