进程和线程的区别

一、定义

        进程:具有一定独立功能的程序关于某个数据集合上的一次运行的活动,进程是系统进行资源分配和调度的一个独立单位。

        线程:进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的独立运行的基本单位,线程自己不用于系统资源,只拥有一点在运行中必不可少的资源(如程序计算机,一组寄存器和栈) 但是它与同属于一个进程的其他的线程共享进程所拥有的全部资源。

二、进程的特点

        独立性:进程是系统中独立存在的实体,它用于自己独立的资源,每个进程都有自己对的地址空间,在没有运行进行本身的情况下不可访问其内的资源 。 

        动态性:程序是静态的,进程是动态的,程序只是一个静态的指令集合,而进程是一个在系统中运行的指令结合。

        并发性:进程之前,交替出现。

三、两者之间的联系

        一个程序至少存在一个进程,一个进程至少存在一个线程。

        一个进程可以创建和撤销另一个线程,同一个进程中的多个线程是并发执行的。

        线程的划分单位小于进程,使得多线程程序的并发高。

四、进程和线程的区别

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

        2、每个独立的线程都有一个程序运行的入口、顺序执行序列和程序的出口,但是线程不能够单独执行,必须运行在应用程序中,由应用程序中提供的多个线程来控制。

        3、进程有独立的地址空间,一个进程崩溃后,不会对其他进程造成影响,但是线程只是一个进程中的不同执行路径。

        4、逻辑上讲多线程的意义在于一个应用程序中,有多个执行部分可以同时执行,但操作系统并没有讲多个线程看做多个独立应用,来实现进程的调度和管理以及资源分配,这就是进程和现场的重要区别。

五、进程和线程的优缺点

        线程执行开销比较小,但不利于资源的管理和保护;而进程正好相反。

猜你喜欢

转载自blog.csdn.net/qq_36192099/article/details/79595850