什么是线程?
-在一个程序里的一个执行路线就叫做线程。更准确的定义是:线程是“一个进程内部的控制序列”。
-一切进程至少都有一个执行线程
-线程也被叫做轻量级进程
什么是进程?
-进程是程序的一个执行的实例。
-进程是正在执行的程序。
-进程是能分配处理器并由处理器执行的实体。
进程和线程
-进程是资源竞争的基本单位
-线程是程序执行的最小单位
联系:进程和线程都是操作系统所运行的程序运行的基本单元。
区别:
-进程具有独立的空间地址,一个进程崩溃后,在保护模式下不会对其他进程产生影响。
-线程只是一个进程的不同执行路径,线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉。
进程的优点:
提供了多道编程,提高计算机CPU的利用率。多道编程的理解:可以将多个进程同时加载到内存中,在操作系统的调度下,可以实现并发的执行。这样就可以提供了CPU的利用率。
进程的缺点:
-进程只能在一个时间内执行一件事,如果想执行多件事,进程就无能为力了。
-进程在执行的过程中如果堵塞,例如等待用户输入信息,整个进程就会挂起,即使进程中有些工作不依赖输入的数据,也将无法执行。
线程的优点:
-创建一个新线程的代价要比创建一个新进程小的多
-与进程之间的切换相比,线程之间的切换需要操作系统做的工作要少很多
-线程占用的资源要比进程少很多
-能充分利用多处理器的可并行数量
-在等待慢速I/O操作结束的同时,程序可执行其他的计算任务
-计算密集型应用,为了能在多处理器系统上运行,将计算分解到多个线程中实现
-I/O密集型应用,为了提高性能,将I/O操作重叠。线程可以同时等待不同的I/O操作
线程的缺点:
-性能损失
-健壮性降低
-缺乏访问控制
-编程难度提高