我们从以下6个方面比较线程与进程的区别。
1.调度的基本单位
进程:在传统的OS中,进程作为独立调度和分配的基本单位,
线程:而在引入进程的操作系统中。线程变成了资源调度和分派的基本单位,可以把线程理解成 “轻量级进程”。
2.并发性
进程与进程:进程和进程可以实现并发。
进程内的各线程:也可以实现并发,从而进一步提升了并发性
3.拥有的资源
进程: 进程可以拥有资源,并作为系统中拥有资源的一个基本单位。
线程: 线程只拥有少量的,能保证独立运行的资源,还允许多个线程共享资源。
4.独立性
同一进程内的不同线程: 独立性低, 因为同一进程内的不同线程是为了提高并发性和相互之间的合作而创建的,他们共享进程内的地址空间和资源。
不同进程内的不同线程: 独立性高,为了防止进程之间彼此干扰和破坏,每个进程都拥有一个独立的地址空间和其他资源,除了共享全局变量以外,不允许其他进程访问。
5.系统开销
进程:开销大。在创造或撤销进程时,系统都要为之分配和回收PCB,分配或回收其他资源(如I/O设备)
线程:开销小。不需要涉及PCB的分配,系统开销明显小于进程。并且切换线程的代价也远低于进程的切换。
6.支持多处理机系统
单线程进程: 在多处理机系统中,进程只能运行在1个处理机上。
多线程进程: 在多处理机系统中,进程可以在多个处理机上并发运行,无疑加速了进程了完成。