当前位置:首页 > 嵌入式培训 > 嵌入式学习 > 讲师博文 > 进程和线程的区别

进程和线程的区别 时间:2018-09-26      来源:未知

1. 定义

进程是一个术语,用来描述一组资源和程序运行所需的内存分配。对于每一个被加载到内存的exe,在它的生命周期中操作系统会为之创建一个单独隔离的进程。一个进程的失败不会影响其他的进程。每个进程是由私有的虚拟地址空间、代码、数据和其他各种系统资源组成的。

线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源。系统创建好进程后,实际就启动执行了该进程的主线程,主线程终止了,进程也就随之终止,每一个进程至少有一个线程(即主线程,它无需由用户主动去创建,是由系统在应用程序启动后创建的),用户根据需要在应用程序中创建其他线程,使多个线程并发的运行在同一个进程中。

2.关系

一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行.

相对进程而言,线程是一个更加接近于执行体的概念,它可以与同进程中的其他线程共享数据,但拥有自己的栈空间,拥有独立的执行序列。

3.区别

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

1) 简而言之,一个程序至少有一个进程,一个进程至少有一个线程.

2) 线程的划分尺度小于进程,使得多线程程序的并发性高。

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

4) 线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。

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

 

更多进程与线程问题:

多进程与多线程的选择

进程与线程的空间问题

上一篇:Java面向对象编程(一)

下一篇:Android 转场动画 windowAnimation和ActivityAnimation的区别

热点文章推荐
华清学员就业榜单
高薪学员经验分享
热点新闻推荐
前台专线:010-82525158 企业培训洽谈专线:010-82525379 院校合作洽谈专线:010-82525379 Copyright © 2004-2022 北京华清远见科技集团有限公司 版权所有 ,京ICP备16055225号-5京公海网安备11010802025203号

回到顶部