线程和进程的区别

来源:互联网 发布:三国志13女武将数据 编辑:程序博客网 时间:2024/05/22 15:15

一个程序至少有一个进程,一个进程至少有一个线程. 

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

线程,有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。另外,线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。在多线程OS中,线程是能独立 运行 的基本单位,因而也是独立调度和分派的基本单位。由于线程很“轻”,故线程的切换非常迅速且开销小(在同一 进程 中的)一个线程可以创建和撤消另一个线程,同一 进程中的多个线程之间可以并发执行。由于线程之间的相互制约,致使线程在运行中呈现出间断性。线程也有就绪阻塞运行三种基本状态。

区别:进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些。但对于一些要求同时进行并且又要共享某些变量的并发操作,只能用线程,不能用进程。


例题:

关于线程的优点,描述不正确的是

  • 线程是具有最少开销的程序执行实体
  • 撤销线程比撤销进程花费的时间短
  • 线程间切换比进程间切换花费的时间短
  • 由于共享资源,一个进程中的线程不能并发执行
解答:D



原创粉丝点击