进程与线程的区别和联系以及优缺点

什么是线程?

-在一个程序里的一个执行路线就叫做线程。更准确的定义是:线程是“一个进程内部的控制序列”。

-一切进程至少都有一个执行线程

-线程也被叫做轻量级进程

什么是进程?

-进程是程序的一个执行的实例。

-进程是正在执行的程序。

-进程是能分配处理器并由处理器执行的实体。

进程和线程

-进程是资源竞争的基本单位

-线程是程序执行的最小单位

联系:进程和线程都是操作系统所运行的程序运行的基本单元。

区别:

-进程具有独立的空间地址,一个进程崩溃后,在保护模式下不会对其他进程产生影响。

-线程只是一个进程的不同执行路径,线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉。

进程的优点:

提供了多道编程,提高计算机CPU的利用率。多道编程的理解:可以将多个进程同时加载到内存中,在操作系统的调度下,可以实现并发的执行。这样就可以提供了CPU的利用率。

进程的缺点:

-进程只能在一个时间内执行一件事,如果想执行多件事,进程就无能为力了。

-进程在执行的过程中如果堵塞,例如等待用户输入信息,整个进程就会挂起,即使进程中有些工作不依赖输入的数据,也将无法执行。

线程的优点:

-创建一个新线程的代价要比创建一个新进程小的多

-与进程之间的切换相比,线程之间的切换需要操作系统做的工作要少很多

-线程占用的资源要比进程少很多

-能充分利用多处理器的可并行数量

-在等待慢速I/O操作结束的同时,程序可执行其他的计算任务

-计算密集型应用,为了能在多处理器系统上运行,将计算分解到多个线程中实现

-I/O密集型应用,为了提高性能,将I/O操作重叠。线程可以同时等待不同的I/O操作

线程的缺点:

-性能损失

-健壮性降低

-缺乏访问控制

-编程难度提高

猜你喜欢

转载自blog.csdn.net/CDatreides/article/details/81842144