进程(Process)
1.资源分配和调度的基本单位;
2.线程的容器,程序的实体;
程序:数据和指令的集合,是一个静态概念。
3.正在执行的程序(动态性);
4.具有生命周期(对比程序)。
线程(Thread)
1.程序执行的最小单位,进程的一个执行单元;
一个进程可并发多个线程,每个线程可并行执行不同的任务。
2.系统分配处理器时间资源的基本单位。
两者区别
1.地址空间:同一进程的线程共享本进程的地址空间,而进程之间的地址空间相互独立;
2.资源拥有:同一进程的线程共享本进程的资源(如:内存、I/O、CPU...),而进程间资源独立;
3.崩溃后果:在保护模式下,进程崩溃不对其他进程造成影响,但一个线程崩溃整个进程都会死掉。因此,多进程比多线程健壮;
4.切换代价:进程切换消耗资源大,效率高。
涉及频繁切换是,进程优于线程。但若要求同时进行并且又要共享某些变量的并发操作,只能用线程不能用进程。
两者优缺点
线程执行开销小,但是不利于资源的管理和保护。
进程执行开销大,但是能够很好的进行资源管理和保护。
如何选取
多进程:对资源的管理和保护要求高,不限制开销和效率。
多线程:要求效率高,频繁切换时,资源的保护管理要求不是很高。
单线程和多线程
单线程:只有一条线程在串行地执行任务。
多线程:多条线程并发执行任务(时间片轮转)。