1、进程/线程
1.1、进程
是程序在操作系统中的一次执行过程,系统进行资源分配和调度的一个独立单位。
1.2、线程
是进程的一个执行实体,是 CPU 调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。
一个进程可以创建和撤销多个线程,同一个进程中的多个线程之间可以并发执行。
2、并发/并行
2.1、并发
多线程程序在单核心的 cpu 上运行,称为并发;
2.2、并行
多线程程序在多核心的 cpu 上运行,称为并行。
2.3、并发与并行区别?
并发与并行并不相同,
并发主要由切换时间片来实现“同时”运行,
并行则是直接利用多核实现多线程的运行,Go程序可以设置使用核心数,以发挥多核计算机的能力。
2.4、上下文
并发意味着程序在运行时有多个执行上下文,对应着多个调用栈
3、协程/线程
3.1、协程
协程:独立的栈空间,共享堆空间,调度由用户自己控制,本质上有点类似于用户级线程,这些用户级线程的调度也是自己实现的。
3.2、线程
线程:一个线程上可以跑多个协程,协程是轻量级的线程。










