进程和线程的区别和联系

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了进程和线程的区别和联系相关的知识,希望对你有一定的参考价值。

进程:引入:为了程序能够并发执行,且为了对并发执行的程序加以描述和控制,引入了进程的概念。

           (1)进程是程序的一次执行。

           (2)进程是一个程序及其数据在处理机上顺序执行时所发生的活动。

           (3)进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。 

           (4)进程是作为能够拥有资源和独立运行的基本单位。

线程:  引入:在操作系统中引入线程,是为了减少程序并发执行时锁付出的空间开销,使OS具有更好的并发性。

 

线程与进程进行比较

           线程具有许多传统进程所具有的特征,所以又称为轻量级进程或进程元,相应的把进程称为重量级的进程,传统进程相当于只有一个线程的任务,在引入了新城的操作系统中,通常一个进程都拥有若干个线程,至少也有一个线程。

     相同

             (1)调度

             (2)并发性

                             在引入了线程的操作系统中,进程之间或一个线程中的多个线程之间都可以并发执行。

             (3)拥有资源:不论是传统的操作系统还是引入了线程的操作系统,进程都可以拥有资源,是系统中拥有资源的有个基本单位。

             (4)系统开销:在某些操作系统中,线程的切换、同步和通信都无需操作系统内核的干预。

                 

      不同点

             (1)调度

                           在传统操作系统中,进程是拥有资源的基本和独立调度、分派的基本单位,在引入了线程的操作系统中,线程是调度和分派的基本单位,而进程是拥有资源的基                           本单位。

             (2)并发性

             (3)拥有资源:进程拥有资源,线程自己不拥有资源(也有一点必不可少的资源)。但可以吧访问其他隶属进程的资源。

             (4)系统开销

                          a.在创建或撤销进程的时候,系统都要为之创建和回收进程控制块,分配或回收资源。如内存空间和I/O设备,系统开销明显大于线程创建或撤销时的开销。

                          b.在进程切换时,涉及到当前进程CPU环境的保存及新被调度运行进程的CPU环境的设置,而线程的切换则仅需要保存和设置少量寄存器内容,不涉及存储器管理                      方面的操作,所以,进程的代价远高于线程。

                          c.一个进程的多个线程具有相同的地址空间,在同步和通信的实现方面线程也比进程容易。

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

             (6)进程和线程的主要差别在于它们是不同的操作系统资源管理方式。进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是                 一个进程中的不同执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程                      序健壮。

              (7)每个独立的线程都有一个程序运行的入口,顺序执行序列和程序的入口,但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。

以上是关于进程和线程的区别和联系的主要内容,如果未能解决你的问题,请参考以下文章

线程与进程之间的联系和区别

windows服务和进程的区别和联系

进程跟线程区别与联系

进程和线程的区别和联系??

进程线程协程的区别和联系

进程与线程的联系与区别