搜索
写经验 领红包
 > 地理

线程与进程的区别和联系(java线程与进程的区别)

导语:线程与进程的区别

线程和进程都是程序在执行过程中所调度的基本资源,但是二者却有着本质上的差别。

下面就来给大家介绍一下它们之间的区别:

1、概念不同:

线程是操作系统为多个处理器同时提供的一个运行空间。一个进程中可以有一个或多个线程;一个程序中也可以有多个进程,但只能有一个线程与之对应。而同一个程序的各个子程序之间是没有任何关联的。进程则是系统为实现某个目标而调度的一系列相互协作的工作单元的组合体(如桌面应用程序、网络服务器等)。

2、作用不同:

一个程序至少拥有一个的运行实体-即一个,这个任务的执行就是由这个运行的实体来实现的;每个任务都有一个与之相对应的。

3、实现方式不同:

在多道程序设计语言中,为了便于描述和管理这些不同的工作单元,人们通常用(block)来表示它们之间的关系,中的元素称为(property),例如:、、。

而我们平常所说的两个东西之间有什么时说的也是这两个东西的共同属性是什么(如鼠标的两个箭头分别指向哪个位置等),而不是说它们的具体实现过程是什么(,)。

4、控制权不同:

对于同一时间只有一个处理器的计算机来说,对每一个被调度的任务的控制权都是一样的(因为所有被控制的资源都是共享的);而对于多道程序设计语言的编译器或解释器来说,则要通过设置相应的标志位来区分各个工作单位之间的级别关系了(比如把a对象的指针赋值到b对象上时要先判断一下a对象是否还在栈上)。

5、生命周期不同:

每个的运行实体都有自己的生命期:从进入该状态的那一刻起开始计时直到退出该状态为止的时间间隔被称为它的生存周期;当某时刻到来的时候如果还没有完成它自己的生命周期的话那么它就进入了阻塞的状态;当它完成了自己当前的生命周期后就可以离开阻塞的状态并继续进行下一段时间的生命周期了。

6、创建顺序及级:

不同的程序其创建顺序也不同:首先启动的是主程序也就是内核所在的主机代码所在的机器上的主存中的主函数所在的那台机器的指令系统所对应的机器码段地址所对应的指令代码段地址所指的机器代码段的第一个字节的偏移量指定的那个机器码号的那个指令代码段地址所指的寄存器内的内容就应该是main函数所在的那条指令的内容。

免责声明:本站部份内容由优秀作者和原创用户编辑投稿,本站仅提供存储服务,不拥有所有权,不承担法律责任。若涉嫌侵权/违法的,请反馈,一经查实立刻删除内容。本文内容由快快网络小姬创作整理编辑!