线程的挂起态

在<<操作系统精髓与设计原理>>第四章第4.1.2小节中说:一般来说,挂起态对线程没有什么意义,这是由于此类状态是一个进程级的概念。典型的线程有派生态、阻塞态、接触阻塞、结束态。

先来看看进程的挂起态。

挂起态进程的概念与不在主存中的进程概念是等价的。一个不在主存中的进程,不论它是否在等待一个事件,都不能立即执行。

我们可以总结一下挂起态进程的概念。首先,定义挂起态进程具有的特点如下所示:

1.进程不能立即执行。

2.进程可能是或不是正在等待一个事件。如果是,阻塞条件不依赖于挂起条件,阻塞事件的发生不会使进程立即被执行。

3.为阻止进程执行,可以通过代理把这个进程置于挂起态,代理可以是进程自己,也可以是父进程或操作系统。

4.除非代理显示地命令系统进行状态转换,否则进程无法从这个状态中转移。


进程挂起的原因有交换、其他OS原因、交互式用户请求、定时(轮转)、父进程请求。


线程挂起SuspendThread在MSDN中这样解释:

If the function succeeds, execution of the specified thread is suspended and the thread's suspend count is incremented.

Suspending a thread causes the thread to stop executing user-mode (application) code. 

大意是仅仅停止用户态代码的执行,并没有换出主存的概念,因为那是进程的事情。

SuspendThread()翻译为挂起线程真的不怎么合适,应该翻译为停止\暂停线程来得更确切。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值