进程和线程区别

1.定义
进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。
线程是一个进程的实体,是CPU调度和分配的基本单位,它是比进程更小的能独立运行的基本单位,线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源,但是它可以和同属于一个进程的其他的线程共享进程所拥有的全部资源。
2.关系
  一个线程可以创建和撤销另一个线程,同一个进程的多个线程之间可以并发执行。
  相对于进程而言,线程更接近于执行体的概念,它可以与同进程的线程共享数据,拥有自己的栈空间,拥有独立的执行序列。
3.区别

主要区别是不同的操作系统资源管理方式。进程拥有独立的地址空间,一个进程崩溃后,在保护模式不会对其他进程产生影响。而线程只是进程中的不同的执行路径,线程有自己的堆栈和局部变量,但是线程之间没有独立的 地址空间,一个线程死掉就等于整个进程死掉。所以多进程程序要比多线程程序更健壮,但在进程切换时,消耗资源较大,效率要差一些。但是对于一些要求同时进行并且要共享某些变量的并发操作,只能用线程,不能用进程。
多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理,以及资源分配。
线程执行开销小,但不利于资源的管理和保护;进程正相反。 


猜你喜欢

转载自blog.csdn.net/sunayn/article/details/80355900