原创

进程线程、并行并发


进程和线程

进程

  • 当一个程序被运行,从磁盘加载这个程序的代码至内存,这时就开启了一个进程
  • 进程可以视作程序的一个实例。大部分程序可以同时运行多个实例进程(例如记事本,画图,浏览器等),也有的程序只能启动一个实例进程(例如网易云音乐,360等)

线程

  • 一个进程之内可以分为一到多个线程
  • 一个线程就是一个指令流,将指令流中的一条条指令以一定的顺序交给CPU执行
  • Java中,线程作为最小的调度单位,进程作为资源分配的最小单位。

并行与并发

单核CPU下,线程实际还是串行执行的。CPU在线程间切换,这种线程轮流使用CPU的做法称为并发concurrent

多核CPU下,每个核都可以调度运行线程,这时候线程可以是并行

我在网上看见过Go语言之父是这样描述并发和并行的

并发(concurrent)是同一时间应对多件事情的能力

并行(parallel)是同一时间动手做多件事情的能力

举个栗子
  • 家庭主妇做饭、打扫卫生、给孩子喂奶,她一个人轮流交替做这多件事,这就是并发
  • 家庭主妇雇了三个保姆,一个专门做饭,一个专门打扫卫生、一个专门给孩子喂奶,这就是并行
多线程
  • 作者:刘柄岐
  • 发表时间: 2022-01-21 18:22
  • 版权声明:自由转载-非商用