首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >.NET框架中的线程生命周期

.NET框架中的线程生命周期
EN

Stack Overflow用户
提问于 2012-01-23 10:28:44
回答 2查看 11.2K关注 0票数 16

this link中解释了.NET框架中线程的状态。

我最近在一个网站上看到了这张照片,我想到了几个问题:

  1. 操作系统中的线程生命周期与.NET框架中的线程生命周期并不完全一致。有没有人能提供一个与.NET框架的操作系统中的状态相匹配的资源?
  2. 我们在.NET框架中没有一个叫做Blocked的状态。如果线程发出I/O请求,它会处于什么状态?
  3. Aborted状态的用途是什么?当线程调用Abort()方法时,它将进入AbortRequested状态,在线程响应abort请求后,它将进入Stopped状态。那么Aborted state有什么作用呢?
EN

回答 2

Stack Overflow用户

发布于 2012-01-23 11:02:18

如果线程的执行已被某个同步原语挂起,则线程将被阻塞。根据定义,任何在给定时刻执行有用工作的线程在该时刻都不会被阻塞。

AbortRequested/Stopped周期使线程有机会执行有序的关闭,释放所获得的资源并执行其他清理任务。

http://www.albahari.com/threading/

票数 6
EN

Stack Overflow用户

发布于 2012-01-26 02:11:04

您的问题的答案:

  1. ,我不相信这个映射会像你希望的那样有用。我从来没有遇到过它,也从来不需要它。
  2. 除非你正在尝试编写像死锁检测器这样的东西(相当高级),否则并不需要“阻塞”状态。从典型的开发人员的角度来看,操作系统的“阻塞”状态是暂时的,可以忽略。(看起来您的代码正在运行,但是在异步响应将Aborted状态作为.NET提供线程中所有代码周围的异常处理程序之前,操作系统没有任何事情可做。当捕获到导致线程死亡的异常时,.NET会将其转换为Aborted状态。否则,您可能无法区分异常线程终止和正常线程终止。
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8966636

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档