进程:是一个“执行中的程序”,程序不执行就不会产生进程。
一个执行中的程序至少会产生一个进程,当进程获得了处理机时才会从就绪状态变为运行状态,处理机不断切换地分配到每个进程中。决定同时有多少个进程处于运行状态的是处理器数量(CPU核数)
进程的三态模型:多个程序在系统中运行时,进程在处理机中交替运行,状态在不断切换。
三态分别是:就绪、运行、阻塞
线程:称之为轻量级的进程,程序执行流的最小单元。
线程依赖于进程(一个进程可以有多个线程),线程不拥有系统资源。与同属一个进程的其他线程共享进程拥有的全部资源;一个线程可以创建和撤销另一个线程,同一个进程中的多个线程可以并发执行。一个进程下有多个线程来完成不同的工作称之为多线程。(一个进程下至少会有一个线程)
线程由来:由于用户并发请求,为每个请求都创建一个进程显然太浪费系统资源和影响响应用户请求的效率,所以引进线程的概念。
协程:是一种用户态轻量级的线程。
协程与线程的区别
1、协程是由用户自己调度,而线程是用系统调度
2、协程是异步的,而进程线程是同步的
3、一个线程可以有多个协程,一个进程也可以单独拥有多个协程
4、协程会保留上一次调用的状态
多进程:2个或2个以上的进程处于运行状态,进程间通信不方便
多线程:把一个进程分为很多片,每一片都是一个独立的流程,线程间可以互相通讯