线程和进程都是程序在执行过程中所调度的基本资源,但是二者却有着本质上的差别。
下面就来给大家介绍一下它们之间的区别:
1、概念不同:
线程是操作系统为多个处理器同时提供的一个运行空间。一个进程中可以有一个或多个线程;一个程序中也可以有多个进程,但只能有一个线程与之对应。而同一个程序的各个子程序之间是没有任何关联的。进程则是系统为实现某个目标而调度的一系列相互协作的工作单元的组合体(如桌面应用程序、网络服务器等)。
2、作用不同:
一个程序至少拥有一个的运行实体-即一个”任务”,这个任务的执行就是由这个运行的实体来实现的;每个任务都有一个与之相对应的”处理机”。
3、实现方式不同:
在多道程序设计语言中,为了便于描述和管理这些不同的工作单元,人们通常用”块”(block)来表示它们之间的关系,”块”中的元素称为”属性”(property),例如:”文件”、”窗口”、”按钮”。
而我们平常所说的两个东西之间有什么时说的也是这两个东西的共同属性是什么(如鼠标的两个箭头分别指向哪个位置等),而不是说它们的具体实现过程是什么(”如何操作的”,”怎么实现的”)。
4、控制权不同:
对于同一时间只有一个处理器的计算机来说,”任务管理器”对每一个被调度的任务的控制权都是一样的(因为所有被控制的资源都是共享的);而对于多道程序设计语言的编译器或解释器来说,则要通过设置相应的标志位来区分各个工作单位之间的级别关系了(比如把a对象的指针赋值到b对象上时要先判断一下a对象是否还在栈上)。
5、生命周期不同:
每个的运行实体都有自己的生命期:从进入该状态的那一刻起开始计时直到退出该状态为止的时间间隔被称为它的生存周期;当某时刻到来的时候如果还没有完成它自己的生命周期的话那么它就进入了阻塞的状态;当它完成了自己当前的生命周期后就可以离开阻塞的状态并继续进行下一段时间的生命周期了。
6、创建顺序及级:
不同的程序其创建顺序也不同:首先启动的是主程序也就是内核所在的主机代码所在的机器上的主存中的主函数所在的那台机器的指令系统所对应的机器码段地址所对应的指令代码段地址所指的机器代码段的第一个字节的偏移量指定的那个机器码号的那个指令代码段地址所指的寄存器内的内容就应该是main函数所在的那条指令的内容。
声明:本文部分素材转载自互联网,如有侵权立即删除 。
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!
8. 精力有限,不少源码未能详细测试(解密),不能分辨部分源码是病毒还是误报,所以没有进行任何修改,大家使用前请进行甄别
丞旭猿论坛
暂无评论内容