下面从调度性、并发性、系统开销和拥有资源等方面对进程和线程进行比较。
(1)调度
在传统的操作系统中,作为拥有资源的基本单位和独立调度、分派的基本单位都是进程。在引入线程的操作系统中,则把线程作为调度和分配的基本单位,而进程作为拥有资源的基本单位,使线程基本上不拥有资源。
(2)并发性
在引入线程的操作系统中,不仅进程之间可以并发执行,而且在一个进程中的多个线程之间也可以并发执行。
(3)拥有资源
不论是传统的操作系统,还是引入了线程的操作系统,进程都可以拥有资源,是系统中拥有资源的一个基本单位。一般而言,线程不自己拥有系统资源(也有一点必不可少的资源),但它可以访问其隶属进程的资源,即一个进程的代码段、数据段以及所拥有的系统资源。
(4)系统开销
在创建或撤销进程时,系统都要为之创建和回收进程控制块,分配或回收资源,操作系统所付出的开销明显大于线程创建或撤销时的开销。