4. 进程、线程以及协程间的区别
(1) 进程(process)
进程是系统进行资源分配和调度的一个独立的最小单位,它是程序执行的一个实例。
程序运行时,系统就会创建一个进程,并为它分配资源,然后把该进程放入进程就绪队列,进程调度器选中它的时候,就会为它分配CPU、内存、时间片,程序开始真正运行。
进程拥有自己独立的内存空间,进程间数据不共享,因此开销大。
进程特征:
- 动态性:进程的实质是程序在多道程序系统中的一次执行过程,进程是动态产生的,动态消亡的;
- 并发性:任何进程都可以同其他进程一起并发执行。
- 独立性:进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位。
- 异步性:由于进程间的相互制约,使进程具有执行的间断性,即进程按各自独立的、不可预知的速度向前推进。
(2) 线程(thread)
线程是程序执行的最小单位,它是进程的一个实体,也是进程的一个执行流,是CPU调度和分派的基本单位,它是比进程更小的