检查线程状态,同时使其处于等待状态

2024-04-25

我想知道是否可以检查线程的状态,该线程可能处于可等待状态,但不一定如此,如果它处于可等待状态,我想将其保留在该状态。

基本上,如何在不更改线程(可等待)状态的情况下检查线程的状态。

通过等待,我的意思是如果我调用 wait(pid) 它会正确返回并且不会挂起。

我还要补充一点,我正在跟踪一个多线程程序,因此我无法更改它的代码。另外,我也省略了这个信息,但这是一个基于 Linux 的系统。


你问的是进程还是线程?这wait函数作用于进程,而不是线程,因此您所写的问题无效。

对于(子)进程,您可以通过调用来检查状态waitidWNOWAIT旗帜。这将使进程处于等待状态。

对于线程,在某些实现上您可以调用pthread_kill(thread, 0)并检查ESRCH离开时判断线程是否已退出thread处于可连接状态。请注意,这是有效的仅当线程可连接时。如果它已分离或已加入,则您将调用未定义的行为,并且您的程序应该崩溃或更糟。不幸的是,没有要求pthread_kill report ESRCH在这种情况下,因此它可能会错误地报告线程仍然存在,而实际上它已经终止了。当然,正式的有没有不同在调用之间永远存在的线程之间pthread_exit和实际终止,以及实际上已经完成终止的线程,所以这个问题有点没有意义。换句话说,不要求可连接线程终止直到pthread_join被阻塞等待其终止。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

检查线程状态,同时使其处于等待状态 的相关文章

随机推荐

  • Kendo 网格列宽度 + 可滚动

    我正在尝试从 JavaScript 绑定到可滚动剑道网格 但在列宽方面遇到了一些问题 这fiddle http jsfiddle net mnTGm 1 演示了问题 问题末尾的代码 我在 html 中指定标头并向其中一个标头添加宽度 然后
  • 为什么属性初始值设定项不调用自定义设置器?

    来自Kotlin 文档 https kotlinlang org docs reference properties html getters and setters 允许自定义设置器 class Test var stringRepres
  • 新的 ASP.NET Web 应用程序:有一个可以执行某些操作的登录按钮 - 但是,神奇之处在哪里呢?

    请原谅我对这个问题有点缺乏 ASP NET 知识 场景如下 我正在 VS2010 中玩 我创建了一个新的ASP NET Web Application 在 Visual C Web 模板下 没什么特别的 只是一个基本的网络应用程序 没有花哨
  • Django 单元测试:AttributeError:“WSGIRequest”对象没有属性“user”

    运行测试时 我输出以下错误 用户 self request user AttributeError WSGIRequest 对象没有属性 user 我尝试过从MIDDLEWARE to MIDDLEWARE CLASSES反之亦然 目前 我
  • 如何从 Oracle 中的日期中减去小时数,以便它也影响当天

    我正在尝试从 Oracle 中减去日期 这样它甚至也会影响这一天 例如 如果 时间戳是 01 June 2015 00 小时 如果我减去 2 小时 我希望能够转到 31 May 2014 22 小时 I tried to char sysd
  • 使用递归求数组的最小值?

    好吧 所以我一直在尝试用 Java 来理解递归 我可以完成简单的任务 例如求和 反转等 但我一直在努力做这个练习 我试图使用递归找到数组中的最小数字 但始终得到 0 0 的答案 我对递归的理解是 我需要增加一个元素 然后提供一个结束递归的基
  • 如何配置适用于 Node.JS 的 AWS S3 SDK 以与 localhost 一起使用?

    我正在尝试使用fakes3 https github com jubos fake s3作为我编写的一些简单 S3 代码的端点 但我无法超越连接阶段 当前的错误是 NetworkingError getaddrinfo ENOTFOUND
  • gprof 报告没有累积时间

    我正在尝试在运行 OSX 10 5 7 的计算机上使用 gprof 分析 C 应用程序 我以通常的方式使用 g 进行编译 但使用 pg 标志 运行应用程序并尝试使用 gprof 查看调用图 不幸的是 我的调用图包含所有时间列的全零 被调用
  • javadoc从类中排除一些公共方法

    我必须将类的一些公共方法排除在 javadoc 之外 我尝试了 Chris Nokleberg 的 ExcludeDoclet sixlegs 但 doclet 给出了一个小问题 如果类中的其他方法返回 List 或任何其他泛型 返回类型不
  • 使用 powershell 解决程序集依赖关系引用

    我正在尝试使用 PowerShell v4 0 x86 64 针对我们的内部 API 之一来执行一些相当基本的操作 但我似乎无法克服依赖项加载 到目前为止我有 Reflection Assembly LoadFrom C Users Dav
  • 使用ActiveRecord,有没有办法在after_update期间获取记录的旧值

    使用一个简单的示例进行设置 我有 1 张桌子 Totals 保存了总和amount第二个表中每条记录的列 Things When a thing amount更新后 我想简单地将旧值和新值之间的差异添加到total sum 现在我正在减去s
  • swagger-ui 无法使用自定义 XML ObjectMapper

    我正在开发一个应该启用 swagger ui 的 Spring Boot 应用程序 访问时http localhost 8080 swagger ui html http localhost 8080 swagger ui html有一个错
  • 如何使用按键事件

    我正在编写小型图形编辑器 我想在按 Ctrl A 时捕获事件 我使用这样的代码 这是测试版本 Override public void keyPressed KeyEvent e System out println Press switc
  • mvc:注解驱动未绑定

    当我在 NetBeans 中运行某个 Spring Web 3 项目时 出现此错误 org xml sax SAXParseException 行号 11 列数 30 这 元素的前缀 mvc mvc annotation driven 没有
  • # Rails 5.1 的未定义方法“map”

    我正在将 Rails 应用程序从 3 2 2 升级到 5 1 4 我直接使用参数时在地图方法上遇到错误 错误 ActionController Parameters 的未定义方法 map 在下一行 assignments params as
  • 尝试在 R 中创建直方图时 x 必须是数字

    我是 R 新手 我需要生成一些图表 我导入了一个 Excel 文件 需要在一列上创建直方图 我的导入代码是 file read xlsx femalecommentcount xlsx 1 header FALSE col file 2 上
  • 如何根据条件分割字符串

    分割字符串时 如何确保如果分隔符位于两个字符之间 则不会被考虑 Input String string a b c d e String split string split Output split 0 a split 1 b split
  • SugarORM 中的持久化对象

    我有一个图书课 public class Book extends SugarRecord private String mBookName private String mAuthorName private List
  • Laravel 快速入门指南路线不起作用

    好吧 我是 Laravel 新手 所以直接查看文档开始 文档中存在大量漏洞 因此需要花费大量精力和谷歌搜索来填补空白才能完成 Laravel 设置 我现在已经设置完毕并继续执行快速入门指南中的下一步 我创建了我的路线 Route get u
  • 检查线程状态,同时使其处于等待状态

    我想知道是否可以检查线程的状态 该线程可能处于可等待状态 但不一定如此 如果它处于可等待状态 我想将其保留在该状态 基本上 如何在不更改线程 可等待 状态的情况下检查线程的状态 通过等待 我的意思是如果我调用 wait pid 它会正确返回