现在的位置: 首页 > 综合 > 正文

进程和线程的区别与联系

2019年05月17日 ⁄ 综合 ⁄ 共 1232字 ⁄ 字号 评论关闭

        因为最近在准备着各种笔试和面试,所以就把平时自己比较模糊的概念进行了总结和整理。
        进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配的一个独立单位。线程是进程的一个是实体,是CPU调度和分配的基本单位,它是比进程更小的能独立运行的单元,线程自己基本上不拥有系统资源,只拥有一点在运行时必不可少的资源(如程序计数器、寄存器和栈),但是它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤销另一个线程;同一个进程中的多个线程可以并发执行。

进程的作用和定义:

进程是为了提高CPU的执行效率,减少因为程序等待带来的CPU空转以及其它计算机软硬件资源浪费而提出来的。进程是为了完成用户程序所需要的程序的一次执行过程和为其分配资源的一个基本单位,它是具有独立功能的程序段对某个数据集的一次执行活动。

线程和进程的区别:
(1)一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。线程是进程的一部分,所以线程有时候被称为轻量级进程。
(2)线程在执行过程中,需要协作同步。不同进程的线程间要利用消息通信的办法实现同步。
(3)一个没有线程的进程是可以被看作单线程的,如果一个进程内拥有多个线程,进程的执行过程不是一条线的,而是多条线共同完成的。
(4)系统在运行的时候会为每一个进程分配不同的存储区域,但是不会为线程分配内存(线程所拥有的资源是它所属进程的资源),线程组只能共享资源。那就是说,除了CPU之外(线程在运行的时候要占用CPU资源),计算机内部的软硬件资源的分配与线程无关,线程只能共享它所属进程的资源。
(5)与进程控制表相似,线程也有自己的控制表(TCB),但是TCB中所保存的喜线程状态比PCB表中要少多了。
(6)进程是系统所拥有资源分配的一个基本单位,拥有一个完整的虚拟地址空间,并不依赖线程而独立存在。
(7)进程切换比线程切换开销大。因为进程切换时要切换页表,而且往往伴随着页调度,因为进程的数据段代码要换出去,以便把将要执行的进程内容换进去。本来进程的内容就是线程的超集。而且线程只需要保存线程的上下文就好了,动作很小。
(8)进程有独立的地址空间,进程崩溃后,在保护模式下不会对其他的进程产生影响,而线程只是一个进程中的不同的执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但是在进程切换时,耗费的资源较大,效率要差些。

进程和程序的区别:程序是一组指令的集合,它是静态的实体,没有执行的含义。而进程是一个动态的实体,有自己的生命周期。一般来说,一个进程肯定与一个程序相关,并且只有一个,但是一个程序可以有多个进程,或者一个进程都没有也可以只有一个进程。除此之外,进程还有并发行个交往行。简单的说,进程是程序的一部分,程序运行的时候会产生进程。总结:线程是进程的一部分,进程是程序的一部分。

抱歉!评论已关闭.