Thread的比较

 我来答
太不能3680
2016-05-14 · 超过59用户采纳过TA的回答
知道答主
回答量:197
采纳率:50%
帮助的人:123万
展开全部

进程是资源分配的基本单位。所有与该进程有关的资源,都被记录在进程控制块PCB中。以表示该进程拥有这些资源或正在使用它们。另外,进程也是抢占处理机的调度单位,它拥有一个完整的虚拟地址空间。与进程相对应,线程与资源分配无关,它属于某一个进程,并与进程内的其他线程一起共享进程的资源。  当进程发生调度时,不同的进程拥有不同的虚拟地址空间,而同一进程内的不同线程共享同一地址空间。  线程只由相关堆栈(系统栈或用户栈)寄存器和线程控制表TCB组成。寄存器可被用来存储线程内的局部变量,但不能存储其他线程的相关变量。  发生进程切换与发生线程切换时相比较,进程切换时涉及到有关资源指针的保存以及地址空间的变化等问题;线程切换时,由于相同进程内的线程共享资源和地址 空间,将不涉及资源信息的保存和地址变化问题,从而减少了操作系统的开销时间。而且,进程的调度与切换都是由操作系统内核完成,而线程则既可由操作系统内 核完成,也可由用户程序进行。
图1多线程与进程之间的关系五、线程的适用范围   典型的应用 1.服务器中的文件管理或通信控制 2.前后台处理 3.异步处理六、线程的执行特性 一个线程必须处于如下四种可能的??一个线程调用了new方法之后,并在调用start方法之前的所处状态。在初始态中,可以调用start和stop方法。Runnable:一旦线程调用了start 方法,线程就转到Runnable 状态,注意,如果线程处于Runnable状态,它也有可能不在运行,这是因为还有优先级和调度问题。阻塞/ NonRunnable:线程处于阻塞/NonRunnable状态,这是由两种可能性造成的:要么是因挂起而暂停的,要么是由于某些原因而阻塞的,例如包括等待IO请求的完成。退出:线程转到退出状态,这有两种可能性,要么是run方法执行结束,要么是调用了stop方法。最后一个概念就是线程的优先级,线程可以设定优先级,高优先级的线程可以安排在低优先级线程之前完成。一个应用程序可以通过使用线程中的方法setPriority(int),来设置线程的优先级大小。线程有5种基本操作: 派生:线程在进程内派生出来,它即可由进程派生,也可由线程派生。 阻塞(Block):如果一个线程在执行过程中需要等待某个事件发生,则被阻塞。 激活(unblock):如果阻塞线程的事件发生,则该线程被激活并进入就绪队列。 调度(schedule):选择一个就绪线程进入执行状态。 结束(Finish):如果一个线程执行结束,它的寄存器上下文以及堆栈内容等将被释放。图2 线程的状态与操作 线程的另一个执行特性是同步。线程中所使用的同步控制机制与进程中所使用的同步控制机制相同。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
意法半导体(中国)投资有限公司
2023-06-12 广告
STM32F207是一款非常优秀的微控制器芯片,它是ST(意法半导体)最新推出的基于90纳米工艺的STM32F2系列芯片之一。STM32F207芯片内置了丰富的外设接口,包括ADC、DAC、UART、SPI、I2C等,可以轻松实现各种复杂的... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式