## 1. 进程和线程的区别?
* 调度:进程是资源管理的基本单位,线程是程序执行的基本单位。
* 切换:线程上下文切换比进程上下文切换要快得多。
* 拥有资源: 进程是拥有资源的一个独立单位,线程不拥有系统资源,但是可以访问隶属于进程的资源。
* 系统开销: 创建或撤销进程时,系统都要为之分配或回收系统资源,如内存空间,I/O设备等,OS所付出的开销显著大于在创建或撤销线程时的开销,进程切换的开销也远大于线程切换的开销。
## 2. 协程与线程的区别?
* 线程和进程都是同步机制,而协程是异步机制。
* 线程是抢占式,而协程是非抢占式的。需要用户释放使用权切换到其他协程,因此同一时间其实只有一个协程拥有运行权,相当于单线程的能力。
* 一个线程可以有多个协程,一个进程也可以有多个协程。
* 协程不被操作系统内核管理,而完全是由程序控制。线程是被分割的CPU资源,协程是组织好的代码流程,线程是协程的资源。但协程不会直接使用线程,协程直接利用的是执行器关联任意线程或线程池。
* 协程能保留上一次调用时的状态。
## 3. 并发和并行有什么区别?
并发就是在一段时间内,多个任务都