多线程VS多进程

多线程VS多进程


首先,我们先从功能方面来将二者进行一下比较~


①进程:能够完成多任务,就像在电脑上同时运行多个QQ。

②线程:能够完成多任务,就像一个QQ中的多个会话窗口。

这里我们上一张图,来看一下线程的几种不同状态





接着,我们再从两者的定义上进一步了解一下多线程和多进程~


①进程:进程是系统进行资源调度和分配的一个独立单位

②线程:线程是进程的一个实体,是CPU调度和分配的基本单位,它是比进程更小的能独立运行的进本单位。线程自己基本上不拥有系统资源,只拥有一点在运行中不可缺少的资源(如程序计数器,一组寄存器或栈),但是它可与同属一个进程的其他线程共享进程所拥有的全部资源。




了解了进程和线程定义上的不同之后,我们来详细列取一下二者的区别~


① 一个程序至少有一个进程,一个进程至少有一个线程。

② 线程的划分尺度小于进程(也就是说占用的资源比进程少),使得多线程程序的并发性高。

③ 进程在执行过程中拥有自己独立的内存单元,而多个线程则共享内存,从而极大的提高了程序的运行效率。

④ 线程不能够独立执行,必须依存在进程中。




最后这里,通过线程与进程的区别,我们来总结一下二者的优缺点~


线程执行开销小,但不利于资源的管理和保护;而进程则正好相反。