什么是进程与线程及两者的区别

进程通常被定义为一个正在运行的程序的实例,它由两个部分组成:   
  *   一个组成部分是操作系统用来管理进程的内核对象。内核对象也是系统用来存放关于进程的统计信息的地方。   
  *   另一个组成部分是地址空间,它包含所有可执行模块或DLL模块的代码和数据。它还包含动态内存分配的空间。如线程堆栈和堆栈分配空间。   
    
    
  进程是不活泼的。若要使进程完成某项操作,它必须拥有一个在它的环境中运行的线程,该线程负责执行包含在进程的地址空间中的代码。实际上,单个进程可能包含若干个线程,所有这些线程都“同时”执行进程地址空间中的代码。为此,每个线程都有它自己的一组CPU寄存器和它自己的堆栈。每个进程至少拥有一个线程,来执行进程的地址空间中的代码。如果没有线程来执行进程的地址空间中的代码,那么进程就没有存在的理由了,系统就将自动撤消该进程和它的地址空间。   
  若要使所有这些线程都能运行,操作系统就要为每个线程安排一定的CPU时间。它通过以一种循环方式为线程提供时间片(称为量程),从而造成一种假象,仿佛所有线程都是同时运行的一样。   
    
    
  当创建一个进程时,系统会自动创建它的第一个线程,称为主线程。然后,该线程可以创建其他的线程,而这些线程又能创建更多的线程。   
微软官方对进程和线程的定义:   
  进程:用最简洁的话来说,进程就是一个正在执行的程序,一个或多个线程在进程中运行,线程是操作系统分配CPU运算时间的最小单位。每一个进程都提供了运行一个程序所必需的资源,一个进程具有4GB的虚拟地址空间(Windows   NT   Server   Enterprise   Edition及Windows   2000   Advanced   Server中低3GB虚拟地址空间供进程使用,高1GB供操作系统的内核代码使用。Windows   NT/2000中低2GB供进程使用,高2GB供操作系统内核代码使用。Windows9X:0——64K只读空间用来装入Microsoft   DOS信息,64K——4M装入DOS的兼容代码,4M——2GB的私有空间供进程使用,2GB——3GB的共享空间装入各种DLL代码,3GB——4GB为共享的系统内核代码空间,其中共享的2GB——4GB的空间是99%的“内存无效页错误”、“General   Protect   Error(GPE)”及蓝屏的罪魁祸首。),可执行代码,数据,对象句柄,环境变量,优先权以及设置最大化最小化的功能。每一个进程都从一个主线程开始执行,但可以在它所拥有的线程中创建额外的线程。一个进程的所有线程共享进程的虚拟地址空间和系统资源,一个线程的资源包括线程的机器寄存器设置,内核堆栈,线程环境变量和进程虚拟地址中的用户堆栈。   
 如下图:   
    
  ┏━━━━━━━┓   
  ┃ A B C  ┃   
  ┃ │ ┃ │  ┃   
  ┃ │ ┃ │  ┃   
  ┃ │ ┃ │  ┃   
  ┃ │ ┃ │  ┃   
  ┃ │ ▉ │  ┃   
  ┃ │ ┃ │  ┃   
  ┃ │ ┃ │  ┃   
  ┃ ▉ ┃ │  ┃   
  ┃ │ ┃ │  ┃   
  ┃ │ ┃ │  ┃   
  ┃ │ ┃ │  ┃  细竖线表示线程;   
  ┃ │ ┃ ▉  ┃  粗竖线表示主进程;   
  ┃ │ ┃ │  ┃  方块表示当前位置;   
  ┃ │ ┃ │  ┃  方框表示进程封装;   
  ┃ 1 2 3  ┃  字母表示进程名称;   
  ┃ └─╂─┘  ┃  数字表示进程CPU地址。   
  ┗━━━━━━━┛   
    我就是进程   
    
    
   1.进程如树根,线程如树干,所有线程都直接或间接由进程得来。   
   2.B线程是程序运行时创建的,由他创建A和C,它就是树子的主树   
    干,其它小树干(树枝)由它长出   
   3.每个树枝(线程)几乎可以做到互不影响,砍断一个另两个仍然生长   
   4.CPU如生长素,按顺序分别在ABC三个地方施加向上的一个推动线程   
    的力,虽然CPU在某个时刻只在一个地点出现,但由于快速的切换导   
    致我们无法发现,犹如快速切换具有相似性的一组静态图片可以使   
    我们看到运动图像一样。   
    5.当所有的树干都被砍断,树根的存在就不再有意义了,所以它会自   
    动地“烂掉”。


注册表是Windows系统中保存系统软件和应用软件配置的数据库,而随着Windows功能越来越丰富,注册表里的配置项目也越来越多,很多配置都可以自定义设置,但这些配置分布在注册表的各个角落,如果是手工配置,可以想像是多么困难和烦杂。而组策略则将系统重要的配置功能汇集成各种配置模块,供用户直接使用,从而达到方便管理计算机的目的。 

其实简单地说,组策略设置就是在修改注册表中的配置。当然,组策略使用了更完善的管理组织方法,可以对各种对象中的设置进行管理和配置,远比手工修改注册表方便、灵活,功能也更加强大。


什么是策略!!!!
决定一个组织的基本长远目标,以及为实现这些目标所必需采用的行为过程和资源的分配方案。目的是要通过一整套重大的目标和政策来确定和说明一个组织设想的概貌是什么样的,它是一个指导组织考虑问题和采取行动的有用的框架。

两者的区别:

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

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

一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行 
2、进程和线程的区别在于: 

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

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

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

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

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


转载自:http://qingchenzhulu.blog.163.com/blog/static/2116391792012821105452398/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值