问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

什么是进程,什么是线程,有什么区别,请答得清楚详细一点??谢谢

发布网友 发布时间:2022-03-26 12:06

我来回答

2个回答

热心网友 时间:2022-03-26 13:36

什么是系统进程
进程是指在系统中正在运行的一个应用程序;线程是系统分配处理器时间资源的基本单元,或者说进程之内独立执行的一个单元。对于操作系统而言,其调度单元是线程。一个进程至少包括一个线程,通常将该线程称为主线程。一个进程从主线程的执行开始进而创建一个或多个附加线程,就是所谓基于多线程的多任务。
那进程与线程的区别到底是什么?进程是执行程序的实例。例如,当你运行记事本程序(Nodepad)时,你就创建了一个用来容纳组成 Notepad.exe的代码及其所需调用动态链接库的进程。每个进程均运行在其专用且受保护的地址空间内。因此,如果你同时运行记事本的两个拷贝,该程序正在使用的数据在各自实例中是彼此独立的。在记事本的一个拷贝中将无法看到该程序的第二个实例打开的数据。
以沙箱为例进行阐述。一个进程就好比一个沙箱。线程就如同沙箱中的孩子们。孩子们在沙箱子中跑来跑去,并且可能将沙子攘到别的孩子眼中,他们会互相踢打或撕咬。但是,这些沙箱略有不同之处就在于每个沙箱完全由墙壁和顶棚封闭起来,无论箱中的孩子如何狠命地攘沙,他们也不会影响到其它沙箱中的其他孩子。因此,每个进程就象一个被保护起来的沙箱。未经许可,无人可以进出。
实际上线程运行而进程不运行。两个进程彼此获得专用数据或内存的唯一途径就是通过协议来共享内存块。这是一种协作策略。下面让我们分析一下任务管理器里的进程选项卡。
这里的进程是指一系列进程,这些进程是由它们所运行的可执行程序实例来识别的,这就是进程选项卡中的第一列给出了映射名称的原因。请注意,这里并没有进程名称列。进程并不拥有独立于其所归属实例的映射名称。换言之,如果你运行5个记事本拷贝,你将会看到5个称为Notepad.exe的进程。它们是如何彼此区别的呢?其中一种方式是通过它们的进程ID,因为每个进程都拥有其独一无二的编码。该进程ID由Windows NT或Windows 2000生成,并可以循环使用。因此,进程ID将不会越编越大,它们能够得到循环利用。第三列是被进程中的线程所占用的CPU时间百分比。它不是CPU的编号,而是被进程占用的CPU时间百分比。此时我的系统基本上是空闲的。尽管系统看上去每一秒左右都只使用一小部分CPU时间,但该系统空闲进程仍旧耗用了大约99%的CPU时间。
第四列,CPU时间,是CPU被进程中的线程累计占用的小时、分钟及秒数。请注意,我对进程中的线程使用占用一词。这并不一定意味着那就是进程已耗用的CPU时间总和,因为,如我们一会儿将看到的,NT计时的方式是,当特定的时钟间隔激发时,无论谁恰巧处于当前的线程中,它都将计算到CPU周期之内。通常情况下,在大多数NT系统中,时钟以10毫秒的间隔运行。每10毫秒NT的心脏就跳动一下。有一些驱动程序代码片段运行并显示谁是当前的线程。让我们将CPU时间的最后10毫秒记在它的帐上。因此,如果一个线程开始运行,并在持续运行8毫秒后完成,接着,第二个线程开始运行并持续了2毫秒,这时,时钟激发,请猜一猜这整整10毫秒的时钟周期到底记在了哪个线程的帐上?答案是第二个线程。因此,NT中存在一些固有的不准确性,而NT恰是以这种方式进行计时,实际情况也如是,大多数32位操作系统中都存在一个基于间隔的计时机制。请记住这一点,因为,有时当你观察线程所耗用的CPU总和时,会出现尽管该线程或许看上去已运行过数十万次,但其CPU时间占用量却可能是零或非常短暂的现象,那么,上述解释便是原因所在。上述也就是我们在任务管理器的进程选项卡中所能看到的基本信息列。

什么是线程?

究竟什么是线程呢?正如在图A中所示,一个线程是给定的指令的序列 (你所编写的代码),一个栈(在给定的方法中定义的变量),以及一些共享数据(类一级的变量)。线程也可以从全局类中访问静态数据。

栈以及可能的一些共享数据

每个线程有其自己的堆栈和程序计数器(PC)。你可以把程序计数器(PC)设想为用于跟踪线程正在执行的指令,而堆栈用于跟踪线程的上下文,上下文是当线程执行到某处时,当前的局部变量的值。虽然你可以编写出在线程之间传送数据的子程序,在正常情况下,一个线程不能访问另外一个线程的栈变量。

一个线程必须处于如下四种可能的状态之一,这四种状态为:

初始态:一个线程调用了new方法之后,并在调用start方法之前的所处状态。在初始态中,可以调用start和stop方法。
Runnable:一旦线程调用了start 方法,线程就转到Runnable 状态,注意,如果线程处于Runnable状态,它也有可能不在运行,这是因为还有优先级和调度问题。 阻塞/ NonRunnable:线程处于阻塞/NonRunnable状态,这是由两种可能性造成的:要么是因挂起而暂停的,要么是由于某些原因而阻塞的,例如包括等待IO请求的完成。 退出:线程转到退出状态,这有两种可能性,要么是run方法执行结束,要么是调用了stop方法。
最后一个概念就是线程的优先级,线程可以设定优先级,高优先级的线程可以安排在低优先级线程之前完成。一个应用程序可以通过使用线程中的方法setPriority(int),来设置线程的优先级大小。

热心网友 时间:2022-03-26 14:54

关于进程较实质的定义:
1. 进程是程序的一次执行;
2. 进程是可以和别的计算器并发执行的计算;
3. 可定义为一个数据结构及能在其上进行操作的一个程序;
4. 一个程序及其数据在处理机上顺序执行时所发生的活动;
5. 是程序在一个数据集合上的运行过程,是系统进行资源分配和调度的一个独立单位。
综合定义为:可并发执行的程序在一个数据集合上的运行过程。

线程:比进程更小的能独立运行的基本单位。
更具体的内容建议你去看一本操作系统的书。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
vivo y18l 死机卡在开机界面 vivoy18l手机频繁黑屏死机怎么办? vivo y18l 死机了怎么办 vivoY18l黑屏死机解决办法 vivo y18l刷机很久都开不了机怎么? 湖北自考专升本会有学籍吗? 湖北自考专升本后可以考研吗 湖北自考申请毕业证的时间在什么时候 湖北自考专升本学历怎么查询 湖北自考专升本为什么没有学籍 系统的进程有哪些,还有它的作用是什么? 进程结构包括哪些 什么是进程?从结构上讲,进程有那几个部分组成? 进程的三种基本状态? 进程的基本状态有哪三种 1. 进程有程序、数据、_____三部分组成。 linux下的一个进程在内存里包括哪三部分数据 进程的内容 进程是由哪几个部分构成 进程的静态实体哪三部分组成? 进程有哪几部分组成,简述进程和程序的主要区别 UNIX系统中进程由哪三部分组成? 进程的静态实体由哪三部分组成 从静态的观点看,操作系统中的进程是由程序段、数据和( )三部分组成 什么是进程?进程由哪几部分组成?进程三态指的是哪三种状态? 进程是由那三部分组成的? 系统中一个进程由那三部分组成? 手机怎样才能让骚扰电话打不进来 骚扰电话怎么拦截? 怎样拦截这些骚扰电话? 软件开发过程一般有几个阶段? 软件开发过程可以包括哪几个阶段 软件设计与开发过程分为哪几个阶段? 软件开发要经历哪三大阶段? 软件开发步骤包括哪些过程? 软件开发分几个阶段 软件开发分为什么阶段? 软件开发包括哪些东西? 软件开发过程一般有几个阶段?每个阶段的作用 互联网软件开发过程包括哪几个阶段? 说明软件设计与开发过程分为哪几个阶段。每个阶段你都做了哪些工作,得到什么设计结果? 软件生命周期,常说是三个时期八个阶段,请问这三个时期的八个阶段分别是什么? 软件开发有哪几个阶段,每个阶段的任务是什么 软件开发的基本流程包括哪些 软件开发过程一般有几个阶段 软件工程分为那几个阶段? 软件开发的流程都有哪些步骤呢? 软件设计包括哪两个阶段? 在微信语音聊天通话时,闹钟会不会响? 打着语音通话闹钟会不会响小米